Python's Situation in Japanese Startups

Cb4bbcd7fc86bd164b016fec7651204d?s=47 hsekine
August 27, 2017

Python's Situation in Japanese Startups

Python's Situation in Japanese Startups

Cb4bbcd7fc86bd164b016fec7651204d?s=128

hsekine

August 27, 2017
Tweet

Transcript

  1. Python’s Situation in Japanese Startups PyCon APAC 2017 2017/08/27 Hironori

    Sekine
  2. Introduction • Hironori Sekine • Software Engineer • SQUEEZE Inc.

    • Twitter: @checkpoint
  3. Community activities • PyCon JP 2014 ~ 2016 Staff •

    Organizer of Python meetup • Author of Some Python books
  4. Table of contents • Programming language situation in Japan •

    What kind of technology is actually used
  5. Programming Language • Java • PHP • Ruby • Others

  6. Java • Used in a wide range of fields •

    Spring Framework • Many job information
  7. PHP • Used to build web applications • Laravel, CakePHP

    • Many job information
  8. Ruby • Matz • Ruby on Rails • Many documents

    and books • Many communities • Big international conference - https://ja.wikipedia.org/wiki/%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8%E3%82%86%E3%81%8D%E3%81%B2%E3%82%8D -
  9. Others • Perl • Scala • Go • etc…

  10. Python • Used in a wide range of fields •

    It is a big movement since one or two year ago https://www.python.org/
  11. Search Keyword • It is rising from around 2016

  12. Books • More than 30 books have been published •

    Many O'Reilly translated books are published
  13. Books

  14. O'Reilly's sales ranking

  15. Event • Meetup • WorkShop • BootCamp • Conference

  16. Community • A wide range of communities exists • by

    area • by category • Many people participated
  17. Many startups use Python

  18. How do you use it? • A case study in

    SQUEEZE • Property management software • Single page application
  19. Infrastructure • Route 53ʢdomainʣ • S3ʢstorageʣ • Elastic BeanstalkʢEC2, ELBʣ

    • SQSʢmessage queueʣ • RDSʢMySQLʣ • Redis (Cache, KVS)
  20. • Django • Django REST framework Web Framework

  21. Domain Driven Design

  22. • Divide function by module • Access to each module

    through the interface • Minimize dependency Layered architecture
  23. Domain Driven Design

  24. • Describe database entities and data access • Only the

    service and constants can be referred from the Domain layer • Views does not write business logic as much as possible and focuses only on preparing the context Data layer
  25. Domain Driven Design

  26. • Describe the business logic of the application Domain layer

  27. Domain Driven Design

  28. • In charge of HTTP processing • Receive the request

    and return the response • Call domain interface Web Layer
  29. Common library • Create a separate Python module • sq-airbnb

    • sq-django-slack • Create a wheel using Docker
  30. wheelhouse

  31. Continuous integration • CircleCI • Source code check • CodecovʢCoverageʣ

    • Requires.ioʢMonitor dependent librariesʣ
  32. • flake8 • flake8-coding • flake8-commas • flake8-quotes Source code

    format checker
  33. • pytest • factory_boy • mock • codecov Test

  34. requires.io

  35. Serverless Framework • AWS Lambda • Chalice • Zappa •

    Create thumbnail function • Inquiry form function
  36. Data analysis

  37. Data analysis • 50 thousand listing data • Price data

    of more than 20 million • Data analysis, price prediction
  38. • pandas • Jupyter Notebook • scikit-learn Data analysis

  39. Conclusion • Programming language situation in Japan • Python is

    used in many companies and products
  40. Thank you!