【云享讀書會 · 第七期《程序員修煉之道》】每日話題精選內容
本篇博文內容根據第七期云享讀書會《程序員修煉之道》群內同學每日話題整理而成。同學的很多討論內容都非常精彩,對于行業趨勢、研發邏輯架構、經驗分享等話題均有非常獨到的見解。

內容由華為云7號助手(微信devcloud07)整理提供。更多云享讀書會活動內容請添加7號小助手咨詢。
未來在線編程是否會成為主流,本地IDE會被弱化?
A1:未來在線編程肯定會成為主流,尤其是涉及機器學習、AI等需要強算力的編碼,本地IDE將越來越弱化,最后將只是文字編輯。
A2:短時間不會,未來會被弱化。在線IDE也會有定制化功能,隨著5G落地,網絡的高性能與穩定性的提升,在線編程會讓開發者感受與本地幾近一致。讓輕量級用戶端飛一會~
A3:
在線編程的好處:
1.無限的計算資源能力
2.減少準備工作
3.標準化,今兒減少協作成本
4.從任何地方訪問
5.符合DevOps的發展
A4:我個人的意見是,在可遇見的3年之內,本地IDE還是主流,本地IDE有著定制化的優勢,另外,在線的編程就如何打造順手的編程環境是一個發展中考慮的一個很大因素,不是說在線編程不好,對于大多數開發人員來說,IDE 的轉換可以瞬間轉換,也會“死磕”到底。
A5:我覺得是可以在線編程化的。第一、網絡 5G+wifi6+以太網300M以上的接入能力 不是問題 。第二、云端機器的性能也可以達到 。第三、云ide配合github等代碼庫再加上ai技術加持強大的代碼自動完成能力 手寫的部分可以大大縮減 。第四、瀏覽器wasm的能力充分利用加上瀏覽器本地存儲能力的運用? 可以彌補延遲和體驗不佳的問題? 慢慢會越來越強大。
A6:基于cloudIDE構建一種全新的便捷企業軟件開發模式,降低企業軟硬件成本,本地IDE自然會被替換
A7:在線編程需要考慮文件的存儲,當我的數據體量大的時候,如何去保存?同時在調用已有的項目模塊的時候,是不是可以準確的調用,這些是本地編程的優勢
軟件開發的本質是什么?程序設計有哪些通用的思想和方法?
A1:軟件開發的本質是信用:解決信用問題,流程、數據復盤、校驗都屬于信用問題。? ?程序設計通用思想就是業務分解,產品設計到數據結構設計到邏輯設計到前端設計。
A2:傳統的web應用采用MVC三層架構。復雜的系統可以采用DDD四層架構,DDD還可以結合DCI
A3:設計的方法跟思想就是程序的算法;
A4:程序設計通用的方法應該是設計模式吧
A5:本質是采用工程化的思想解決現實問題
編程語言越來越多,有沒有必要開發一個自動轉碼的軟件工具。如果有必要,需要如何實現;如果沒有必要,請簡述理由。
A1:有必要,這種轉碼軟件還是需要的。目前網上雖有這類軟件,但轉碼的程度比較低,不適合看和直接使用,所以仍然需要在這方面做進行優化和提高效率的
A2:一個應用得多端,適配成本是巨大的,如果可以用這樣的技術順利,一直到其他平臺節省90%代碼重寫的時間,那么這個應用發展會更好。比方說WINDOWS版本的QQ一直在linux上,final cut pro這樣的專業軟件,也能移植到Windows平臺。前段時間,蘋果的發布會就推出了arm的芯片,也發布了對應的轉換器,為的就是方便iOS到Mac程序的移植。這樣就可以把電腦平板和手機三端打通。
A3:我覺得這個轉碼工具做出來,各種編程語言的靈活性就沒了,代碼已經沒有靈魂。都得按照轉碼工具要求的規范來寫,那就沒有語言了。
A4:要不要是個問題,能不能是個問題吧,如果有萬能編譯器,序列化可以免了部分語言的性能優化也免了搞不好AI也可以免了...
A5:我覺得與其說出現大一統,不如預測會出現針對各個開發語言的AI 工具。不可能有語言適應所有場景,如果有那就是完美,完美本身就是一個缺點。
A6:個人覺得工具集成化 到最后同一化 肯定是趨勢!? 即使做不了統一 前期過渡 也應該會誕生轉碼工具
怎樣快速提升團隊代碼規范能力?
1、多參考下行業和大廠的規范 比如某巴巴的《某巴巴java開發手冊》就很有名;
2、項目或產品團隊一開始就需要約定好規范 從命名規則 編碼格式到習慣用法等等 最好還有一些范例 讓團隊起步時就遵守;
3、可以使用人工走查或者devcloud的代碼掃描工具或其他代碼掃描工具對代碼進行掃描 ;
4、應要求代碼有注釋率的要求。多采用javadoc或其他技術生成文檔。
5、多借鑒開源軟件的代碼規范。
怎樣才能提高運算效率,優化代碼結構,在數據量大的情況下,采取怎樣的辦法用最小的成本去優化代碼 從而提高效率?
A1:其實優化算法本身一樣存在成本,有時候簡單粗暴的scale up和scale out也能提高性能。對于遺留系統而言,有時候做架構優化的成本甚至相當于徹底重構,有利有弊。根據情況可以做不同的選擇。
A2:優化算法,轉為分塊計算,邊讀邊算,將大量數據問題轉為少量數據問題。這個成本最低。
A3:如果是針對運算效率的話,只有從算法上去解決了。在硬件環境一致的情況下,可以認為是單個語句的運行時間一致,那么要提高運算效率,就只能去減少需要運行的語句。
A4:
1.DB優化
之前我們碰到一個問題,用戶表100多萬條數據,訂單表幾萬條數據,但是關聯查詢的時候分頁將近10多秒才出來,做了各種優化(代碼、SQL等),最終還是不見明顯改善;
后來偶爾在看數據庫表結構的時候,發現用戶表的字符集是utf8,而訂單表的字符集是utf8mb4,兩個表關聯的時候因為字符集不統一導致索引失效!!!
當然DB優化的一個核心就是SQL代碼的優化以及索引的優化,也可以嘗試包括分區表等處理邏輯。
2.架構優化
可以考慮引入MQ,將一些處理邏輯放到消息隊列中,讓主要邏輯及時反饋給用戶,提升效率
或者引入微服務架構,按照模塊式進行編程設計,盡可能提高代碼復用度
3.代碼邏輯優化
1)代碼整體框架的優化,明確每個模塊、類、接口的處理職責
2)功能邏輯的優化,盡可能把復雜邏輯簡單化,內聚邏輯獨立成函數,實現可復用
3)性能優化,這個主要是學會使用一些工具(比如JProfile、LoadRunner等),另外就是引入一些緩存、連接池、線程池等優化
A5:成本可以認為是時間和效益。代碼的優化,算法的提升,到一定位置后,就會出現是提升算法好還是直接增加硬件好。優化算法,需要更高端的人才,需要更高的研發費用和社會成本;硬件是一次性成本,尤其現在是云的時代。
A6:還是需要看規模,硬件提升在規模化的情況下增加的成本還是很可觀的。。。也許用其中一部分就可以找到一個高端的人才來從代碼和算法上優化提升性能,那樣還能節約不少。前提條件是你當前最大的成本瓶頸是時間,不然不能單以快來評估。個人比較喜歡把“最小的成本”定義為:解決當前最主要瓶頸所帶來的成本。
編碼/產品/模塊組建化是不是未來編程的趨勢
A1:封裝越來越深,以后寫代碼要求的功力更深了,不過就crud而言反而是更便捷了
A2:把做軟件的分成來兩類人 一個是開發低代碼平臺的 開發低代碼平臺的人本身要寫很多代碼 一個是使用低代碼平臺進行開發的 這些人不需要寫啥代碼。不過我覺得有第三類,你們可能忘記了 而這個可能是能讓人嚇出一身冷汗的:會寫代碼的機器人,而它們又分成了以上兩類。最終的世界是這樣的:寫代碼的生命體可能會不存在了 但是寫代碼的機器人將永生!
A3:模塊化是一個趨勢,根據需求狀況,對于模塊的啟用或者禁用系統可以進行相應的收縮,減少開發壓力,但是還需要考慮數據的耦合性
開發者 AI
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。