軟件開發(fā)是典型的知識密集型產(chǎn)業(yè), 同時也需要一些工資、辦公、設(shè)備和服務(wù)器成本。 軟件開發(fā)用錢不多, 適合我這種缺錢的創(chuàng)業(yè)者。 八年來, 在打游戲之余, 我希望通過開發(fā)軟件建立自己的經(jīng)濟來源。
成功需要內(nèi)因和外因, 其中內(nèi)因是主要的。 在嘗試軟件創(chuàng)業(yè)的過程中, 我總結(jié)出了五個關(guān)鍵點。
第一, 交付高質(zhì)量代碼。 這主要涉及三個要素: 熟練運用編程語言和IDE、 實踐測試驅(qū)動開發(fā)、 和利用Git工具進行項目管理。 條件允許的情況下應(yīng)該通過擴大團隊規(guī)模和結(jié)伴編程來避免長時間工作和腦力透支。
第二, 面向?qū)ο笤O(shè)計。 軟件設(shè)計有很多流派, 面向?qū)ο笤O(shè)計是被我信奉的一種。面向?qū)ο笤O(shè)計應(yīng)該采用需循漸進的方式, 避免在項目早期給出全面細(xì)致的面向?qū)ο笤O(shè)計。 這是因為項目早期, 程序員面臨的業(yè)務(wù)上、依賴性上、和算法上的不確定因素眾多, 而且程序員對項目的理解尚不成熟。 應(yīng)該針對相對容易的局部需求給出面向?qū)ο笤O(shè)計, 然后逐步擴大功能范圍并且逐步重構(gòu)設(shè)計。 經(jīng)典的面向?qū)ο笤O(shè)計模式需要在實踐中融會貫通。
第三, 容器, kubernetes, 和微服務(wù)架構(gòu)。 對于一般項目來說, 只需要學(xué)會這幾件事: 簡單的容器化操作、租用kubernetes和kubernetes的基本配置、 簡單的微服務(wù)架構(gòu)設(shè)計、 和k8s部署文檔。 目前完全有可能做到自動化部署k8s集群, 但是其中的關(guān)鍵工具被墻了。 對于我來說,手動部署k8s集群是可以接受的。
第四, 學(xué)會各種亂七八糟的工具。 這些工具包括操作系統(tǒng)、數(shù)據(jù)庫、消息隊列、PDF編輯器、無頭瀏覽器、前端圖表框架, 等等等等。 總得來講, 對于繞不過去的需求, 從競品中選一個最流行、 教程最全、 文檔文筆最好的, 花上一兩個星期學(xué)會怎么用就行了。
第五, 經(jīng)營納稅。 一些互聯(lián)網(wǎng)服務(wù), 比如短信業(yè)務(wù)、電話業(yè)務(wù)、 少數(shù)云服務(wù)、申請成為某些平臺的第三方開發(fā)者等, 需要提供企業(yè)認(rèn)證信息。 這種需求不多, 而且大多數(shù)情況下豆可以繞過去。 因此只要不雇人, 就不需要注冊公司。 注冊公司之后每年要給記賬公司交錢, 這筆錢對經(jīng)營幾乎一點好處也沒有。 作者:玩戰(zhàn)爭游戲 https://www.bilibili.com/read/cv8065623 出處:bilibili