Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python's Situation in Japanese Startups

hsekine
August 27, 2017

Python's Situation in Japanese Startups

Python's Situation in Japanese Startups

hsekine

August 27, 2017
Tweet

More Decks by hsekine

Other Decks in Technology

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!