鉅亨後端工程師養成速成班
寫程式前需要知道的事
Checklist
- 公司E-Mail (人資?)
- 加入Slask (Chris)
- JIRA、Bitbucket、Confluence帳號 (忠和)
- AWS ECR 帳號權限 (Chris)
- 一台Mac UNIX like for Docker (齊木哥)
- 連上公司網路 (齊木哥)
鉅亨後端技能樹 - 基本

鉅亨後端技能樹 - 語言

鉅亨後端技能樹 - 套件管理

https://slides.com/seta/composer#/
鉅亨後端技能樹 - CodeStyle
https://slides.com/seta/codestyle#/

PHP採CamelCase
資料庫欄位命名請依視現有資料表命名方式為準
鉅亨後端技能樹 - Testing
https://www.slideshare.net/jaceju/phpunit

鉅亨後端技能樹 - 資料庫

Cassandra
鉅亨後端技能樹 - 框架

鉅亨後端技能樹 - 其他

鉅亨後端技能樹 - Docker
https://cnyesrd.atlassian.net/wiki/spaces/BackendEngineeringTeam/pages/332070928/AWS+IAM+User
1. 開通AWS 帳號及MFA請找 Chris
2. 使用前請詳閱使用說明書Readme
鉅亨後端技能樹 - Docker
https://cnyesrd.atlassian.net/wiki/spaces/BackendEngineeringTeam/pages/332070928/AWS+IAM+User
1. 開通AWS 帳號及MFA請找 Chris
3. 使用前請詳閱使用說明書Readme
2. 下載https://www.docker.com/community-edition
4. 如果遇到問題請詢問DevOps Chris & Lynn
鉅亨後端技能樹 - 關於PR
1. 先要有Repository權限 (Chris)
2. Fork
3. 修改完後發PR
4. 請別人CodeReview
5. 不可以自已Merge自已的PR
PR範例:https://bitbucket.org/cnyesrd/cnyes/pull-requests/4267/gs-6101-get-magazins-news-list-by-joining/diff
鉅亨後端技能樹 - 關於PR - 2
1. 標題一定要有JIRA票號
2. 描述這張票在改什麼幫助Review的人進入狀況
3. 單元測試
a. Service = 商業邏輯
b. Repository存取邏輯
c. 其他連動邏輯
4. API測試(Postman)
a. 加Seeder
b. 寫Postman Script
鉅亨後端技能樹 - 關於PR - 3
5. 有存取DB一定要有 SQL Explain
6. Cida(Jenkins)沒通過都不可以Merge
7. 寫API必需附上Response
8. 附上PHPUnit Coverage
9. 別人CodeReview時會發問或質疑請務必讓別人了解你的想法與了解別人的想法
10. PR盡量避免過大難以Review
鉅亨後端技能樹 - SelfCheck
- 移除所有修改/新增 檔案不必要的Class引用
- 確認所有修改/新增 namespace 正確
- 確認修改/新增 檔案 Code Style
- 確認所有修改/新增 檔案 function 有 phpdoc
- 確認所有修改/新增 檔案function 有 return type hint
- 確認所有修改/新增 檔案 function param 有type hint
- 確認你有執行過相關修改過的功能確認可運作
鉅亨後端技能樹 - CodeReview
- 你要看的懂對方修改的部份在寫什麼? (了解)
- 對方寫的邏輯有沒有問題? (理解)
- 如果是我來寫有更好的做法嗎? (建議)
鉅亨後端技能樹 - Deploy說明
- Jenkins
- RunScope
- 後續
http://ci.cnyes.cool:8080/
現有Repository
- https://bitbucket.org/cnyesrd/cnyes (Laravel 5.1)
(新聞、基金、後台、台股資訊源...下面沒有的就在這) - https://bitbucket.org/cnyesrd/ipower (Lumen 5.5)
(IPower資訊源) - https://bitbucket.org/cnyesrd/john-crawler (Lumen 5.5)
(銀行匯率爬蟲、加密貨幣爬蟲) - https://bitbucket.org/cnyesrd/quote-api (Lumen 5.5)
(國際指數API、外匯API、貴金屬API) - https://bitbucket.org/cnyesrd/fund-old-driver (Lumen 5.6)
(投資老司機專案)
程式架構簡單說
- Controller - API界面
- Foundation - 模組化特定系統或功能
- Services - 商業邏輯
- Repository - 資料存取邏輯
- Modal - 資料庫界面
- Jobs - Queue的Worker
- Command - 排程或指令
- Observer - 資存存取Event
- Router - 控制EndPoint
- Middleware - Controller前的中介層,如Token驗證
台股資訊源說明
- .ENV設定說明
- Socket 說明
- 文件說明:https://cnyesrd.atlassian.net/wiki/spaces/BackendEngineeringTeam/pages/9273676
https://cnyesrd.atlassian.net/wiki/spaces/BackendEngineeringTeam/pages/53706795
- 程式架構:
https://cnyesrd.atlassian.net/wiki/spaces/BackendEngineeringTeam/pages/411172915
API GuildeLine
- https://cnyesrd.atlassian.net/wiki/spaces/BackendEngineeringTeam/pages/71946396/API+Guideline
SSH Jump
- ssh seta@jump.jp.cnyes.cool
- 請準備一把key給Chris
- 用途:
連到 int, beta環境的Database
Sentry
- https://sentry.io/cnyes-inc-q6/
與DevOps
- 如果你要加排程或Worker 上線前找Ops幫你設定
- 要執行Prod SQL語法
- Jenkins壞掉的時後
驗證
- Beta 驗證
- 整合測試
- 上線後Check
Q & A
工作心得分享
閒聊
關於Scrum
- Refinement估票盡可能的去理解細節及如何做
- Restore盡量抱怨
- Planing絕對專心思考提問,切票切細
- 盡量做自已沒做過的票
時間規劃
- 6:30起床
- 7:30出門(已吃完早餐...)
- 8:30~10:00 (思考一下今天要做什麼?如何做?決定順序重要性)
- 10:00~12:00 (專心解票 除了上廁所喝水 2小時)
- 12:00~13:30 (吃飯+追劇 讓自已完全放鬆)
- 14:00~17:00 (專心解票 除了上廁所喝水 3小時)
- 17:00~18:00 (開始放鬆,做一些除了寫程式以外的事 etc code review, 討論...等 六點準時下班)
- 19:00~20:00 (吃晚餐放鬆)
- 20:00~22:00 (這又是另一個故事)
- 22:00~06:30 (睡覺 8小時)
生理層面
- 三餐正常,不挑食,睡眠充足+品質 (不容易生病)
- 假日保持運動 (維持體力、補充專注力、放鬆全身)
- 假日出去走走 (舒壓)
- 打電動(練習專注、舒壓)
- 星期日準時睡覺
心理層面
- 信心 (了解自已、相信自已)
- 紀律性 (知道什麼時後該做什麼)
- 勇於挑戰 (不要怕犯錯)
- 求知慾 (想三個方案 or 更多)
- 心理調適 (犯錯時要正向思考,完成時要鼓勵自已)
程式設計師的工作是什麼?
- 解決問題!
- 寫程式只是解決問題的方式之一
- 語言只是寫程式的工具之一
- 技術只是解決問題的能力之一
- 找到問題? (理解)
- 規劃如何解決問題? 拆解問題 (破壞)
- 執行規劃(再構築)
- 思考等價交換
練習+學習
鈴木一郎說過:
一日不練,自已知道;
二日不練,對手知道;
三日不練,全場知道;
一個月沒寫程式,會心虛;
半年沒寫程式,失去信心;
一年以上沒寫程式,你確定你要繼續做?
程式設計師最重要的三種能力
1. 學習理解能力 (隨著年紀越大越差)
2. 思考規劃能力 (隨著年紀越大越好?)
3. 執行實作能力 (隨著年紀越大越差)
鉅亨後端
By Seta Chuang
鉅亨後端
- 990