[請益] coding style差太多怎辦?
大家好
小弟上上份工作快離職前
聽到新進的同事說
他都習慣把程式寫成一個一個小的function
後來離職我花了一點時間學習設計模式
和了解SOLID原則
我越覺得這種作法很OK
我大概也知道這應該是重複說高手說過的話
所以後來找到工作
專案自己一個人開發
也沒主管強制要求程式該怎麼寫
變照著 之前同事說的話去開發
讓程式碼 程式碼也是有結構性架構性的
而不是一個function寫幾百行幾千行
mvc Model層也是切得很乾淨
Model層寫的就像api
controller帶參數給MODEL層撈資料出來
不過我最近的公司
完全不是這種做法
雖然是MVC不過還是下SQL查出資料
看到function寫幾百行我看了就昏(業務邏輯)
為了符合公司專案的coding style有點辛苦
基本上我速度也差不多折損一半也有了
不過盡可能把程式碼寫成一個一個小單元應該也沒錯吧
畢竟單元測試
跟我最近看重構的書也是建議這樣
上份工作有改到open source的專案
好像也是這樣
是很難看的懂 但擴充維護修改都很輕鬆
--
能動就好的公司建議逃
下sql會很累,你還太菜,快逃吧
mvc跟sql的關連是...?
程式碼寫成一個一個小單元,應該要增加可讀性才對,
怎麼到你手上變成「是很難看懂,但維護輕鬆」?
誰規定 mvc 不能下 sql?
他的很難看懂 應該是指 程式碼 會跳來跳去吧 有用介面
Imp 通常不會放在同一個檔案
我大概懂你意思...我公司目前就是這樣,看到頭很暈
同樣邏輯東西不斷複製貼上
mvc 還是要下 sql,雖然有些 orm 會額外包一層語法,但是
專案一大,還是 sql 比較好維護。
哈哈 一個.cs檔塞3~4萬行程式碼還是照樣維護呀
錢給超多還是吞下去繼續做
騎驢找馬吧,這種環境待太久不太好
這個不叫 coding style 叫做有沒有把程式寫好
看不懂什麼mvc下sql
原本還想要戰tab跟space,進來竟然...!!
還以為是我們公司XD
應該是指不是.where .select ,from a in b
複雜sql或跨資料庫用套件下也是痛苦啦
那下SQL和MVC或是不是爛code無關啊XD
不過進到架構爛的公司除非錢很多否則我也會想離職
舊code能正常運作的就不要碰它,有bug要修再趁機重構
有興趣可以參考91的課程,很詳細的說要怎麼做
從不可測試的爛code→可測試的爛code→可測試的好code
不過個人覺得如果對薪水之類沒幫助就不要亂碰它 XD
這種好習慣還難看懂原因只有四種,我都親身碰過:1
. 命名差 2. 文件/註解沒寫好 3. 沒有靠IDE幫忙跳
轉/peek 4. 對方是智障; 看您的行文風格,應該不
是4
如果你只碰orm沒碰過需要sql應該是你摸過的系統都太小
所謂的code style就是主管,前輩,掌權者說了算
再多的書 大神文章 google設計模式 先問你薪水誰給的
差太多怎麼辦?前輩的code你只能跟著阿 不然還能怎麼辦
等你抓到機會抓到權力 才能慢慢導到你理想的方式去
而且要想想既有的code為什麼長這樣 改成理想的樣子能動嗎
很多菜鳥讀了一些文章就以為自己超強 改下去才發現爆光光
要是沒看過某種架構或者pattern會覺得比較難看懂我覺得
就好像我有一次在牙醫手術台 菜鳥醫師刀開到一半跑去求救
正常吧
"為什麼跟教科書上的圖不一樣" 我:.......
就一邊工作一邊註解一邊refactor
書上的範例都很理想 實務上不是人人都懂SOLID
而且你會說看到頭昏就表示你自己也還沒很熟悉業務邏輯
所以就一邊工作一邊註解確保你理解業務邏輯跟假設
熟悉以後再根據SOLID補就好(不是推倒重來
應該是命名太差造成看不懂吧..
像前面版友建議的。可以先理解為啥要SOLID
而不是書上說這樣比較好
orm跟sql都要學啊 orm有效能瓶頸的
我是覺得要先學會看懂爛code 改得動爛code
才能體會OOP的美好
我覺得這不是style 純粹是之前寫太爛
連調整都做不到 還是轉行吧
coding style 跟 code quality 是二回事...
測試能過隨便你改
測試能過 然後內容可維護性太低就是豬隊友的做法
沒維護到一堆複製貼上的沒資格抱怨啦
遇過同一個變數用到一千多行還在用的
不然就是好幾層ifelse 然後三四個變數在變的
一堆智障senior也都是各種複製貼上 一堆function快百
行
好幾層ifelse然後好幾個變數這我也遇過 很想砍掉重練
然後變數命名還是看不出含意的
我連if的條件看到一堆括號or或and都受不了
寫出這種爛code的人可能還自以為是邏輯大師
ninja code,工程師保護自我價值 XD
https://bit.ly/2XYGmsy 我都這樣寫
可讀性跟效能有時候也是要做取捨,我覺得可能要搞清
楚商業邏輯再看看
誰規定一定要用orm? 複雜的東西orm 根本超難處理好
嗎...
那是以前VB時代留下來的包袱
如果還只是一般工程師,那只能從手邊的做起,別人的cod
e 儘量看,自己先維護好自己的程式碼
如果為了重構反而拖累開發時程,會被叮到飛起來的,等未
來帶團隊或主管在嘗試傳播想法
推樓上
我待的第一間公司主管帶得很好,剛進去的那陣子會很仔細的
review我的coding style,第二間就真的是能動就好 code有
時候看到會覺得公司招人標準到底在哪...
能動就好的 code 肯定一堆啦,我還去過那種為了搶快什麼
code smell 都有,標準教科書負面教材案例大全的新創。
XD
以前修OS時老師是微軟出身,他說windows也是這樣..
教科書都太理想僅供參考,winxp一堆沒照課本做的
BUG出來會害人停機的..不管怎樣一定是先補起來啊,是取
捨
有時候太複雜的業務需求orm反而效能不好
所以說為何當一個好公司的元老很重要 一句話說出職
場生態
別用ORM了吧… 調效能很慘
2
重構取決於你對自己的程度有多自信 假設已經發現問題 也覺得自己有能力修改 試著跟主管溝通看看 說「在自己任務時程不耽誤的前提下 有路過看到程式碼就稍微整理一下」 若有得到主管或同事許可就下去改 沒把握自己可以改好的話 量力而為 先從小區塊開始改起12
原Po 研究過 Allman Style , K&R style, GNU style 還有 ISO c99 c++2011 c++2014 c++2022 實際撰寫過 Linux kernel, Zephyr, Android framework & App, Python3 for AI Scala for Risc-V, IOS Object-C .m .mm, tracing gcc source, C#, Inline assembly buildroot, bash, Makefile
67
Re: [請益] 接手外包商的code沒交接也沒人可以問我的第一份跟第二份工作都是這個樣子,一開始你會像麻痺的人,給你幾個建議 1. 掌握啟動前的入口 - 大部分程式語言都會有一個從作業系統下命令開始執行 的進入點,可能會載入 config、環境變數、命令參數這些東西,你要先清楚 這些東西的配置意義是什麼。 2. 掌握啟動後的入口 - 如果是 server 或常駐程式,在執行階段就會有監聽行為。41
[請益] 發現同事反組譯自己程式碼怎辦自己寫了一個較有技術價值的專案(是自己主動寫的,非經主管指示)並已經用在公司 內部環境,但發現同事反組譯了自己的程式碼,參考了很多關鍵程式碼片段以 及設計的方式,寫了一個功能一模一樣的程式,還刻意變造讓人以為不是抄襲來的, 比如將if else對調,稍作一些沒意義的修改,各位發現之後會怎麼做? 跟主管講呢?還是當作沒這回事.....28
Re: [請益] 發現同事反組譯自己程式碼怎辦我還是補充一下我待的不是資訊業,我們程式都各寫各的,各自負責互不相干, 沒有強制一定要簽入版控,休假會有代理人,但不是他,離職當然程式是公司的, 但是現在沒有,也沒有跡象要被FIRE,主管應該也不會叫他做這種事。 我寫的這東西主管知道,而且已經上線穩定運作一年多了,屬於Service,有釋出API給 內部使用,所謂技術價值是指可以影響公司的競爭力,而不是一般人隨便弄弄就有辦38
Re: [討論] 工作時一天coding的時間我覺得you對programming(台灣title比較浮誇 RD)有些misunderstand 實際上真正需要brain storming的時間 可說是少之又少 真的要BS也輪不到你這種菜鳥來BS BS出來最後也是滿口BS 程式開發是不斷iteration 確實是會有構想階段沒錯(看高度 程度越低就越不需要動腦)20
Re: [問卦] 如何一句話證明自己C++很強有一天被同事叫去問 template<size_t... Ns> void apply_for(std::integer_sequence<size_t, Ns...>) { (apply(Ns),...); }15
Re: [請益] 如何有效率的看code ?如果你沒寫錯的話 一年多看幾萬行code真的不多 我也是轉職仔,原本在ic house寫C做韌體,一個人負責一個.c/.h檔。一年才進三行code。 轉職後寫C++整個team大約十多人,負責的那一層有兩千萬行code。然後第一年就進快一萬行code。 我原本不會C++的,所以什麼framework,modern C++,design pattern,multithreaded 之類的都沒學過要重學。8
[請益] 網頁開發新手學習方向Hi 各位大家好 想請教各位前輩 簡單介紹背景 小弟 26 國立某教育大學數學資訊教育學士畢,英文弱弱的TOEIC 680。 出社會後在其他行業一陣子後進入軟體業。 目前擔任助理工程師年資約一年從0開始學起,主要使用.NET(Webform)作Web後台功能開6
Re: [請益] 專精前端(或後端)vs全端工程師之前剛好有一份工作是全端,我不知道是否會趨勢化,但全端不一定是一人包前後的案子 事實上那是一份不小的專案,前後端各有數人在開發,甚至客戶 App 也會來串機器 簡單介紹一下那個專案架構 我方開發 web 前端,機器上跑大量 C 的程式,需要把既有 command line 東西視覺化 為了達成雲端操作,所以需要有一個全端來設計 API + SDK4
Re: [討論] 用AI寫code產生的疑問AI(GPT)用於Coding的實務心得 作者是虎尾科大資工系陳國益教授,經同意後轉載文字內容,原連結於下: 在上週前往華新麗華授課時,有工程師問到:若有要接手的大型專案,應如何透過AI協助 ,加速對專案的理解速度,或是快速產生手冊、API列表等,傳統上要花非常多時間交互3
[問卦] 要怎麼讀程式碼R?如題 最近要寫在soc上錄影、播放的程式拉 看廠商給的code 隨便一個.c檔就好幾千行 一堆全域變數 看一看就突然有一個task被創建出來 然後task之間又有一堆訊號在傳資料