軟體工程師的專業和通識
- 軟體開發週期
- Microsoft
- Gitlab
- Dropbox
- Plan
- System Analysis
- Tool
- Funtional
- 架構面試題 #4 - 抽象化設計;折扣規則的設計機制 (06/25 補完) — 安德魯的部落格
- 架構師觀點 - API Design Workshop — 安德魯的部落格
- 以{會員}資料為主體, API 是圍繞在主體的生命週期中, 會影響{狀態}與{資訊變化}的主要操作
- 以狀態機為基礎,一路把我需要的資訊一一標記上去,並且先在腦袋裡面轉過幾個案例,確認可行後才開始花時間把程式碼跟規格寫出來…。有那些東西是物件在意的? 我自己的慣例是要分析這幾項
- 狀態
- 操作 (會改變狀態的)
- 操作 (不會改變狀態的)
- 物件相關資訊 (附加於物件身上的資訊)
- 事件 (外界關注物件本身的變化,而對應的反應)
- https://www.youtube.com/watch?v=mfWfsjypd04
- slide
- 微服務架構 - 從狀態圖來驅動 API 的設計
- SaaS 關鍵設計 - Multi-Tenancy - 探討真實世界的租賃關係 | Complete Think
- Non-Funtional
- System Design
- 怎麼應對System Design Interview
- 是否有能力主導推動整個專案
- 介紹過程中的描述和順序,可以展現價值觀
- 是否能找出關鍵難點並處理
- 決策過程和trade-off
- 有效的Review
- 類似PR Review
- The Anatomy of an Amazon 6-pager
- 選擇無聊的技術
- boring in the sense that it’s well understood. It’s bad, but you know why it’s bad
- In the reality, maintenance cost dominates
- Multitenancy
- UX
- Others
- MySQL🐬 InnoDB 教我的事: 最近最少使用 LRU 串列的優化 | by Jayden Lin | 程式猿吃香蕉 | Medium
- Tachunn Publication - Tachunn Publication - 現實世界是 Database 只是用來輔助我們想要推行產品的工具而已
- Tachunn Publication - How Discord Stores Trillions of Messages
- How Levels.fyi scaled to millions of users with Google Sheets as a backend
- 為什麼你應該使用 OSS(物件存儲服務)而不是直接存在本地?| Yuanlin Lin 林沅霖
- A Discussion On Stateless & Stateful Services (Managing User State On The Backend) - Scaleyourapp
- 2024年的云原生架构需要哪些技术栈 | crossoverJie's Blog
- 後端工程師面試考什麼 — Load Balancer vs. Reverse Proxy vs. API Gateway vs. HAProxy - MyApollo
- Identifier Design Consideration | Complete Think
- 怎麼應對System Design Interview
- Coding
- The Code Review Pyramid - Gunnar Morling
- 併發編程⚡談談鎖與資源. 在寫併發程式的時候,「鎖」和「資源」是兩個不同的東西,如果沒有弄清楚,有時會出現… | by Jayden Lin | 程式猿吃香蕉 | Sep, 2022 | Medium
- 深入 GIL: 如何寫出快速且 thread-safe 的 Python - Grok the GIL: How to write fast and thread-safe Python | louie_lu's blog
- Domain Model Layer Convention (Model 層級管理) · GitHub
- Multi-processing vs multi-threading vs async-await vs Goroutine | by LORY | Jul, 2023 | Medium
- GitHub Copilot 入門 - Huan-Lin 學習筆記
- Google Testing Blog: Code Health: Reduce Nesting, Reduce Complexity
- GitHub Copilot 好難用?說不定是你不懂 Copilot 之技巧全攻略不藏私! | 是 Ray 不是 Array
- 推荐一些值得学习的开源项目和框架 | crossoverJie's Blog
- Cognitive load is what matters
- 使用浮點數最最基本的觀念
- :star:怎麼算有小數點的錢? | 六小編 Editor Leon
- :star:一次核心模組的重構經驗 | omegaatt
- log
- CLI
- Review
- Commit
- 測試
- Release
- 如何自動化 GitHub Releases 流程
- CHANGE LOG
- GitHub - pawamoy/git-changelog: Automatic Changelog generator using Jinja2 templates.
- How To Automatically Generate A Helpful Changelog From Your Git Commit Messages | Michael Hoffmann
- git-cliff: Generate changelog for your Git repositories from the command line : r/linux
- use origin git
- commit lint
- git hook
- 通識
- 心態
- 在團隊中需要具備的心態
- 比起自己成為大師,更重要的是要完成團隊目標
- 軟體開發者的培養 by 卡米哥 | Medium
- Meta裁員、調整方向、重新出發 - UXeastmeetswest - Medium
- Code Simplicity: The Fundamentals of Software is Now Free » Code Simplicity
- 邁向資深工程師之路:凝練自己的觀點 - 吳明倫 MingLun Wu
- 【LINE TV 實習心得】從程式菜鳥到軟體工程師 | Cheng-Wei Hu
- 我在 Meta 當 Staff Engineer. credit… | by Denny | Dec, 2024 | Medium
- 在團隊中需要具備的心態
- 兩大類隨手記 - 兩大類隨手記
- 溝通
- 團隊
- 從 20 哩行軍的故事,看如何面對不確定性
- My life as a CTO — Technology (Daily Work) | by Jocelin Ho | Apr, 2024 | Medium
- 帶領團隊的過程
- 那些理所當然,卻像空氣般重要的小事:談開發流程、程式架構與職涯發展 - PJ (陳柏融) - HackMD
- Average Manager vs. Great Manager | by Julie Zhuo | The Year of the Looking Glass | Medium
- Event storming 是個好東西:幫助團隊看見全貌,引發團隊變革新契機 | 艦長,你有事嗎?
- 心得 — 從遊戲學管理 | Kalan's Blog
- 斷掉的資訊流,鐵打的主管,與流水的員工 – 太陽拳的萬人敵之術
- 令我印象深刻的管理. 職涯走了一段時間,期間經過不少的管理者,有些已經沒有聯絡了,但大部分在工作置換後… | by Spyua | spyua | Medium
- My life as a CTO — Technology (Day 1) | by Jocelin Ho | Apr, 2024 | Medium
- Scrum,但每週只用一小時・細節篇
- Dropbox Engineering Career Framework
- ITHOME 鐵人賽觀戰區
- My Vision: The Roadmap
- [生活記錄] 2023 半年工作回顧 | Marsen's Blog
- DevOpsDays Taipei 2023 紀錄文與感恩文 | 艦長,你有事嗎?
- 替你的應用程式加上智慧! 談 LLM 的應用程式開發 — 安德魯的部落格
- Complexity Has to Live Somewhere
- 【心得】做快五年技術員轉職寫Python 工程師兩年心得。 @職場甘苦談 哈啦板 - 巴哈姆特
- 🎉我是如何从零到成为 Apache 顶级项目的 Committer | crossoverJie's Blog
- Good First Issue: Make your first open-source contribution
- 雲端 GPU 作業平台-COSCUP - Google 簡報
- 完全看懂 ARM 處理器:RISC 與 CISC 是什麼?歷史、架構一次看透 | T客邦
- 追 MediaWiki 頁面很慢的問題 – Gea-Suan Lin's BLOG
- 超混「幽靈工程師」正啃食科技巨頭!全球每年浪費 900 億美元 - INSIDE
- 如何选择可以搞钱的技术栈 | crossoverJie's Blog
- 簡單紀錄 2024 iThome 鐵人賽完賽心得
- #分享 google年末考績的牢騷 - 科技業板 | Dcard
- AI 時代軟體工程師的持續升級 - Mosky Liu - Speaker Deck
- 萬事萬物皆是 LOG — 系統架構也來點科普 - Dev.Poga
- 文件
- 說明文件如何運作,並且應用在你的專案 - PyCon 2017 How documentation works, and how to make it work for your project | louie_lu's blog
- GitHub - squidfunk/mkdocs-material: Documentation that simply works
- Writing Your Docs - MkDocs
- mkdocs serve -a localhost:8888
- GitHub - jgm/pandoc: Universal markup converter
- grip, pypdf
- grip: md to html
- grip doc/control-node-install-config-guide.md --export doc/control-node-install-config-guide.html
- pypdf: html to pdf
- cat doc/control-node-install-config-guide.html | pyppdf -o doc/control-node-install-config-guide.pdf --goto temp
- html to docx
- docker run --rm --volume "
pwd
:/data" --userid -u
:id -g
pandoc/latex doc/control-node-install-config-guide.html -o doc/control-node-install-config-guide.docx
- docker run --rm --volume "
- grip: md to html
- Every pricing page should have GIFs (and how to make them)
- Diataxis-2024-COSCUP - Speaker Deck
- Other Open Source Documentation Platforms · BookStack
- 拜託你看看文件好不好?? - 淺談 Documentation System | Byte and Ink
- 我也想好好寫文件 - Documentation System 的具體寫作指引 | Byte and Ink
- Basic
- Release Notes
- Installation Guide
- User Guide
- Troubleshooting Guide
- CNCF
- 授權
- 面試
- 開發人員的面試指南 - A developer’s guide to interviewing | louie_lu's blog
- 常見 Behavior questions 問題蒐集 - 面試官想知道什麼和如何回答的提示 - HackMD
- Reactive Resume - A free and open-source resume builder
- GitHub - xitanggg/open-resume: OpenResume is a powerful open-source resume builder and resume parser. https://open-resume.com/
- GitHub - casualwriter/casual-markdown-cv: markdown resume and other templates
- 如何讓 FAANG 的人資一眼看上你 - 履歷篇 | 工程師英國找工作紀錄 :: 抓住那個工程師
- 從面試官角度來看程式面試:兩大能力與七個階段 - 灣區下午茶
- 如何打造出色的履歷 | Summer。桑莫。夏天
- 如何做一个好的面试
- The Twelve-Factor App
- [Architecture] The 12 factor App 筆記
- PEP 581 – Using GitHub Issues for CPython
- twitter下方有人問原因,有另一個人回覆了這一篇,值得學習,把為什麼和優勢風險都說清楚了
- 心態
- Infographic
好的軟體產品範例
- Rundeck
- 解決的問題
- 文件
- 概念說明
- Community and Enterprise version
- Release Note
Install
docker run --name rundeck-demo -d -p 4440:4440 -v rundeck-data:/home/rundeck/server/data -e RUNDECK_GRAILS_URL=http://172.19.57.10:4440 rundeck/rundeck:5.11.1
Install with Welcom/Demo project
wget https://github.com/rundeck/welcome-project-community/archive/refs/heads/main.zip && unzip main.zip
cd welcome-project-community-main/
# modify RUNDECK_GRAILS_URL and ciao port if 3000 is used
# RUNDECK_GRAILS_URL: http://172.19.57.10:4440
# ciao:
# container_name: ciao
# image: brotandgames/ciao
# ports:
# - '3001:3000'
docker compose up -d
專業
價值和本質
實際問題 資料建模 資料交換 計算 儲存 傳輸
經由合理的資料建模,針對使用情境和資料特性,善用計算、儲存和傳輸的特性,以合理的資源處理和管理真實世界的狀況和情境 https://twitter.com/j2hongming/status/1535272113153912832?s=20&t=rtGJSf6ce97JcYRIozECCg
軟體和軟體工程的差異在於,後者針對真實物理世界建構的資料模型能夠在時間軸和環境的推進所造成的變動,還能夠使用合理的成本保持穩定性 https://twitter.com/j2hongming/status/1542369761052733440
- 資料模型化: 分析並建立合理資料模型的能力
- 模組化設計
- 可擴充性和可維護性
通識 團體協作 溝通協調
前端 表達能力 資料分析 論述能力 後端 思考能力
溝通 API介面設計
資料模型化 資料結構 物件導向設計
資料持久化 資料庫設計
開發者友好的軟體設計 Spotify System Architecture 作者想要跟大家解釋更多有關於 Spotify 這個音樂串流服務,首先從他的系統功能需求開始分析起,例如可以下載歌曲,發現音樂,Spotify Connect…等,接著預估他的 Scale 有多大,例如有多少使用者,歌曲的串流品質需要的頻寬,可以下載多少首歌,支援多少種語言…等,然後根據這些要點將系統架構給勾勒出來,並且逐步分析每一個元件使用的技術,函式庫與演算法…等,讓讀者可以跟著文章一步一步去做一次完整的系統架分析 軟體工程是個麵包機 軟體開發者的培養
我的使用者是誰 我要管理的資料是什麼(Entity)(identifier) 我的資料儲存體有哪些 我要如何利用資料與呈現,格式為何
要記住什麼 怎麼記(結構, 格式, 存取) 記多久
https://twitter.com/j2hongming/status/1508956605098106883?s=21&t=uSFa7pP8G6ylwy-FZ8qkuA 釐清task是io bound還是cpu bound 釐清data是OLTP還是OLAP 釐清輸入和輸出
https://rezio.io/zh-TW/product API文件 使用指南 系統狀態
API https://app.swaggerhub.com/apis-docs/nwo665/Payment_Gateway/1.0.0#/subscription/post__version__subscription_prorate_info
API Operations - Cyren Cloud Security Documentation - Confluence Create License - Cyren Cloud Security Documentation - Confluence UX https://xd.adobe.com/view/bf694d9c-bcfc-4218-b9e3-b4d8becac546-ea3a/screen/99079d77-fa98-472c-a9a3-694d3c40f894/
real time multiplayer edit How Multiplayer Data Structures Work Diving into Conflict-Free Replicated Data Types (CRDTs) | Redis
工程 - MySQL Partitioning 優化之路. 17 APP 上線至今已經好幾年了,隨著時間過去 DB… | by Jiazhen | 17LIVE Tech Insight | Medium - 在 17 Media 擔任 SRE 的所見及所聞 | by 17 Media Technology | 17LIVE Tech Insight | Medium
License - Sentinel EMS | Entitlement Management System