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

    View full-size slide

  2. Introduction
    • Hironori Sekine
    • Software Engineer
    • SQUEEZE Inc.
    • Twitter: @checkpoint

    View full-size slide

  3. Community activities
    • PyCon JP 2014 ~ 2016 Staff
    • Organizer of Python meetup
    • Author of Some Python books

    View full-size slide

  4. Table of contents
    • Programming language situation in Japan
    • What kind of technology is actually used

    View full-size slide

  5. Programming Language
    • Java
    • PHP
    • Ruby
    • Others

    View full-size slide

  6. Java
    • Used in a wide range of fields
    • Spring Framework
    • Many job information

    View full-size slide

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

    View full-size slide

  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 -

    View full-size slide

  9. Others
    • Perl
    • Scala
    • Go
    • etc…

    View full-size slide

  10. Python
    • Used in a wide range of fields
    • It is a big movement since one or two year
    ago
    https://www.python.org/

    View full-size slide

  11. Search Keyword
    • It is rising from around 2016

    View full-size slide

  12. Books
    • More than 30 books have been published
    • Many O'Reilly translated books are
    published

    View full-size slide

  13. O'Reilly's sales ranking

    View full-size slide

  14. Event
    • Meetup
    • WorkShop
    • BootCamp
    • Conference

    View full-size slide

  15. Community
    • A wide range of communities exists
    • by area
    • by category
    • Many people participated

    View full-size slide

  16. Many startups use Python

    View full-size slide

  17. How do you use it?
    • A case study in SQUEEZE
    • Property management software
    • Single page application

    View full-size slide

  18. Infrastructure
    • Route 53ʢdomainʣ
    • S3ʢstorageʣ
    • Elastic BeanstalkʢEC2, ELBʣ
    • SQSʢmessage queueʣ
    • RDSʢMySQLʣ
    • Redis (Cache, KVS)

    View full-size slide

  19. • Django
    • Django REST framework
    Web Framework

    View full-size slide

  20. Domain Driven Design

    View full-size slide

  21. • Divide function by module
    • Access to each module through the interface
    • Minimize dependency
    Layered architecture

    View full-size slide

  22. Domain Driven Design

    View full-size slide

  23. • 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

    View full-size slide

  24. Domain Driven Design

    View full-size slide

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

    View full-size slide

  26. Domain Driven Design

    View full-size slide

  27. • In charge of HTTP processing
    • Receive the request and return the response
    • Call domain interface
    Web Layer

    View full-size slide

  28. Common library
    • Create a separate Python module
    • sq-airbnb
    • sq-django-slack
    • Create a wheel using Docker

    View full-size slide

  29. Continuous integration
    • CircleCI
    • Source code check
    • CodecovʢCoverageʣ
    • Requires.ioʢMonitor dependent librariesʣ

    View full-size slide

  30. • flake8
    • flake8-coding
    • flake8-commas
    • flake8-quotes
    Source code format checker

    View full-size slide

  31. • pytest
    • factory_boy
    • mock
    • codecov
    Test

    View full-size slide

  32. Serverless Framework
    • AWS Lambda
    • Chalice
    • Zappa
    • Create thumbnail function
    • Inquiry form function

    View full-size slide

  33. Data analysis

    View full-size slide

  34. Data analysis
    • 50 thousand listing data
    • Price data of more than 20 million
    • Data analysis, price prediction

    View full-size slide

  35. • pandas
    • Jupyter Notebook
    • scikit-learn
    Data analysis

    View full-size slide

  36. Conclusion
    • Programming language situation in Japan
    • Python is used in many companies and
    products

    View full-size slide