Let's start your first OSS with CakePHP

Ad4c3c738e57a9bbcb800871e81c232d?s=47 itosho
November 10, 2019

Let's start your first OSS with CakePHP

On CakeFest 2019 Tokyo, Japan / By Sho ITO, Connehito Inc

Ad4c3c738e57a9bbcb800871e81c232d?s=128

itosho

November 10, 2019
Tweet

Transcript

  1. 1.

    Let's start your first OSS with CakePHP by itosho /

    Connehito Inc. CakeFest 2019 Tokyo, Japan
  2. 3.

    About Me Sho ITO @itosho - Backend Engineer, CakePHP Contributor

    - Like Baseball⚾, Basketball - CTO, Connehito Inc. - From the beginning, we used CakePHP in all backend systems
  3. 5.

    Creating services that people cannot live without Connehito uses the

    power of technology to provide support to mothers in their daily decision makings about family matter
  4. 7.

    No.1 app for mothers in Japan! One third of mothers

    in Japan are using mamari Communication amongst users about their worries and experiences about childbearing and childcare Q&A Community App Delivery of useful articles about childbearing and childcare. Many articles are supervised by experts Web Media A subscription service provides more useful functions e.g. premium articles, shopping coupons, premium search functions Mamari Premium
  5. 11.
  6. 13.

    About Easy Query - Behavior Plugin for CakePHP - https://github.com/itosho/easy-query

    - Easily some complicated queries - e.g. upsert, bulk upsert bulk insert, and insert once(insert select query) - Requirements: PHP 7.0+, CakePHP 3.5+, MySQL 5.6+ - Looking for someone to support PostgreSQL !
  7. 14.
  8. 15.
  9. 17.

    Create a Repository - Well begun is half done. -

    If you don’t mind - on GitHub - MIT Licence - Naming is important - Googleability - cake prefix
  10. 20.
  11. 21.
  12. 22.

    Decomposed the Entity array data into fields and data Query

    builder realizes processing of the bulk inser
  13. 24.

    Test codes are necessary for OSS - We can release

    OSS without test codes - But, OSS without test codes is not reliable for developers - TDD is a good choice
  14. 25.
  15. 26.
  16. 29.

    Finished writing code, not done yet - Travis CI is

    a best tool for OSS - Static code analysis and lint tool improve quality of OSS - Static code analysis: PHPStan - Lint tool: CakePHP Code Sniffer
  17. 30.
  18. 31.
  19. 32.
  20. 33.
  21. 34.
  22. 36.

    README is like a entrance - README is very important

    - Requirements - Installation - Usage - It’s kind to have badges - https://poser.pugx.org/
  23. 37.
  24. 38.
  25. 40.

    I might as well - Making it useful for many

    people - not only for self-satisfaction - I researched some popular OSS - found some common points
  26. 42.

    Convenience - Big benefits required - The effort to solve

    a problem is often more bother than the pain that causes it... - Case: Easy Query - High performance of bulkInsert() - A CakePHP standard method, saveMany() doesn't have it - Inspection: insert 100 records to a tags table - saveMany() 2.93 sec - bulkInsert() 2.01 sec - Enviorment: CentOS6, MySQL5.6, CPU 2core, Memory 2GB (Docker for Mac)
  27. 43.

    Clarity - Anyway can use it quickly - mature documentation

    - “When in Rome, do as the Romans do” - intuitive and simplie - Case: Easy Query - bulkInsert() has same interface with saveMany()
  28. 44.
  29. 45.

    Continuity - GitHub’s star is not all! - The change

    is drastic - Even a popular OSS is not remembered half a year later - It is also important to improve continuously - Case: Easy Query - I updated it last week - I declare today that I will upgrade Easy Query to CakePHP4 within half a year!
  30. 46.
  31. 48.

    Next Step - OSS activity is fun and good! -

    But, it is difficult to continue...
  32. 49.

    - Connehito has a company program for encouraging OSS activities

    - Smile Program! - To put it simply, it is an output support program - It started half a year ago Smile Program
  33. 50.

    What is a smile program? - Save up miles when

    our members contribute to the outside community - Members can then spend miles Engineer A Miles bank Engineer B Save Up! (by Output) - OSS Contribution - Presenting and Writing Spend! (for Input) - Getting certified - Attend Oversea Conferences
  34. 51.

    Concept - Money is not the motivation - When in

    need of support, a member can get it - Evaluating the value of output and input
  35. 53.

    Smile Counter - CMS for Smile Program - Featutes -

    Request for output and input - Review for output and input - Mile management - Member management - Member Rankings - Made with CakePHP4!
  36. 55.

    We are raised by the engineer's community Engineer’s Community Connehito

    Inc Grow! - Using many OSS like CakePHP - Referring to other company’s case study
  37. 57.

    Ecosystem Community Connehito Grow Take - Many OSS - Case

    Study - Conference Community Connehito Grow Take - Many OSS - Case Study - Conference Give - Contribution - Case Study - Sponsor
  38. 59.

    Summary - If you have the will, you can create

    OSS now - Keep in mind the "3Cs" when creating OSS - “3Cs” are Convenience, Clarity and Continuity - Connehito will continue to use CakePHP - And we aim to be an indispensable company for CakePHP community!