Defensive programming is a form of defensive design intended to develop programs that are capable of detecting potential security abnormalities and make predetermined responses.[1] It ensures the continuing function of a piece of software under unforeseen circumstances. Defensive programming practices are often used where high availability, safety, or security is needed. -----wikipedia
我同事包了一個一條龍的系統,開發完後跟主管不合,後來走了
結果公司請了三個人來維護,雖然他寫的代碼跟屎一樣,但我真的覺得他是一個偉大的人
以一己之力誕生三個工作崗位
那三个人不得给他磕一个啊
翻譯:
1、真正的防禦性程式 => 不要做可取代性高的程式人員
2、要在你負責的專案工作內加上一些新的技術
3、政府單位研發部門要注重PPT,這是各國都一樣的情況
ppt是不是powerpoint
@@tonycheung6715对
还有很重要的一点,不要过早暴露自己的真实实力。比如同样实现一个功能或者fix一个bug,如果你能花8小时完成,请先慢慢做,如果你发现你的同事要花15小时,你可以拖到14小时或者13小时的时候交工。如果你同事只要花10小时,你可以抓紧,8小时交工。如果你同事只要6小时,呃呃,你好像不太适合这个工作。
最后一句可以😂
有可能活不过第一年. 软件行业三关三灾。项目开发中被认为技术不行, 项目做到一半情况有变,不用了或找不到买家. 项目做完不需要这多人了. 技术要正好不高不低正好. 前中后期三关都能熬下来才是生存本事.
這樣做,根本浪費時間。 還不如多學下新的東西,溝通技巧,管理技巧。項目管理。
@@Jasonwong6967 不一定,真的得看公司文化。
@@Jasonwong6967你们俩都没错啊,同事如果花15小时修bug,而我只要8小时的话,那我当然可以先花6小时自己学一些对自己有用的东西,然后把bug修了,跟同事一起交上去。这样我自己的工作能力也提高了,换公司的时候就可以涨薪,同事也不会觉得我是在卷死他,跟我相处愉快,然后领导也会觉得我高于团队平均水平,因此不会辞退我。这里面的管理问题只存在于公司领导层。如果一个优秀的员工快速完成工作不能为自己带来任何好处,那我为什么要快速完成工作?为了给领导白赚钱吗?
救火也是一个很重要的工作。 老板这个时候就看到你的能力了。
我曾经在3个经理,1个总监和几十个工程师面前解决了很棘手的问题。
当时这个问题已经去到总监那边了,他也亲自下来督公。 几十个工程师没办法解决。
从那次之后,总监就对我很好。
對你很好,但是對你會不會裁員就不知道了
还必须看老板或经理的类型。我当过一段时期的消防,经常被经理叫去为其他同事的项目灭火。后来发现经常搞砸项目的同事升职很快,我和另外一位灭火的同事几乎像乌龟爬。虽然平安度过好几次裁员,但还是觉得心寒。
@@shiouming 升职快的是领导小舅子,别问,这就是拆那
防禦性編程(Defensive Programming)原意是一種編程風格和技巧,旨在改善軟體的品質、可靠性和安全性,減少錯誤和漏洞,而不是影片中的定義。
故意編寫晦澀難懂的代碼(Intentional Code Obfuscation)好像就沒什麼特定的中文專有名詞。
這是大陸人自創的防禦性編成,你說的是歐美他們的防禦型編成(在指令架構做多層較驗防禦)
混淆程式碼😂
跟你說一個笑話,投資不是為了回報。
這是香港高官說的。
買股不可以賣股,存錢不能提錢
就算是一个人把一个核心功能包下来也没用的,因为重构不如重写,人离职了评估一下,接手的模块重写就好了。真正难替代的是模块之间有依赖关系,比如A程序的产出结果要给B系统,B的结果要给C使用,C的结果要给D使用,每个系统都是核心业务都很复杂而且没有文档属于不改就没问题,一改就出错的那种,这种牵一发动全身,重写代价超级高的才算是无可替代的。
現在還在的那種銀行金流就是這種類型的
核心就是搞清楚防禦對像。你不是防你的下一手,你要防的是那些決定把你的名字交上去的人。
以前的年代幾乎沒有線上版控的系統,所以只要不交出程式碼,基本上就很難被公司裁。現在許多公司都知道防範了,所以新世代寫的程式基本上都得上到版控伺服。這樣的防禦性寫程式,以後ai寫程式的情形為最不可控因素,但這集所說的其實都還算基於現況的老練立場。
真正的防御是不斷增強自已的實力!
多看多試一些新技術,這間公司不要你,你也可以去別家工作。
在中國不適用,景氣太差,台灣也不一定需要多強的人打碼
一看你就不懂才这样说
外商剛回來台灣發展
其實只要你將程式碼一交出去 就是弱勢那一方了
企業主必修的學分就是風險掌控
所以公司絕對不會容許有不可取代的員工
其實還有一個方法 這是我重一個大前輩那裏學到的
他利用空閒時間去撰寫一些系統外掛
如有客戶反映需求但公司不考慮
他就評估可行性後自己寫了外掛模組並且搭配自己的私鑰註冊功能
然後去跟公司談合作 販售自己外掛模組跟公司分成
這樣的好處就是 不用提供程式碼 就算離職也還可以繼續跟公司合作賣外掛
這是雙贏的方法
其實會按視屏主這麼做的編程員,都不是混吃等死的那種,可看成「程序員的自我修養」
不過話說回來,現在是搞業務的來管理搞技術、工程師的職場生態,可以別部門插手裁你部門的人 (如10人中必需走3人),裁掉不可或缺的人材,只是在為自己辭職跳槽換跑道,爭取時間做準備
道理我都懂, 但是我們公司進 code 需要 code review
不合格都被退回重改
想說的是,一點也沒用,當老闆要裁你的時候就是要裁。
一个人承包一个模块,还是被裁了。现在老板想找人接手模块发现找不到人。😅
現在AI寫的都比人好🤣
@@oflasho1 其实还差得远🤣
1:40 水仙花数?
(定义成abc也是看得懂的呀 )
乱写、破坏一般是没用的,上面总有人review的。
我们组长隔段时间就开会,叫我解释写的东西,他自己补上注释……
還差點,只給到三位數不能當作定義,但估計也沒人會往下展開弄成算不完的程序
記得馬斯克買了藍鳥後就去了review代碼
@@c2co2co32-:就是3位数呀?
@@36CGMA:你咋知道?
@@c2co2co32-:就是3位数呀?
到底是多卷才需要這樣做呢
在日本是你都想走人家還不讓你走
一堆情緒勒索 還好我走得算比較順利
交接的時候 就可以深深感受程式碼寫得越好懂越容易離開
寫得太難懂 估計多幾個月都走不了
笑死開頭真的很好笑,我來當員工就是為了錢,不要跟我談什麼理想什麼貢獻,我的理想就是可以拿更多的錢,做更少的事!
正解
精神快要崩潰的症狀之一,就是相信某個人的工作非常重要。 --伯特蘭.羅素,英國哲學家
你講的很好,AI會讀懂那些code,未來AI只會越來越好,技術壁壘應該建立在自己懂得一個領域之上。
有種點就把全部商用源代碼丟到AI裡面試試看阿, 笑死, 一手洩漏自家的軟體機密還自得其樂阿
財務也一樣,賬本越亂越不可替代。
不是程序员,但第四点属实感同身受了。进的项目也不是纯奇观确实可能成为未来的业务增长点,但去年利润大跌老板已经绷不住了
35岁被裁的是程序员, 不是软件工程师, 也不是软件架构师
中小企業有的老闆根本什麼都不懂,原始碼加密老闆也不知道😂
例如將python source code轉為十六進位😂😂😂
防御性编程沒想到在對岸是另一種解釋, 佩服佩服
你那什么解释?
@@9826HZg
就一種避免bug的編程理念喇
詳情可以看看wiki
@@9826HZg 正常的防御性编程是指增加程序的可靠性,以应对项目可能出现的种种情况(比如不断刷新网页前端会不会崩溃)
在 code review 那關就被刷....XD
其实对于雇主来说,工资就是买你的劳动成果或者劳动时间。
等出問題就是跑路的時候啊 哈哈
通用性代码不是不能做,要写一些反业务逻辑的代码,会增加别人接手的门槛
。。。。防禦性編程?
defensive programming?
這個用詞是不是跟過去程式設計的用詞有衝突?
是指每個函數前段都要檢查輸入值的編碼法嗎?
時代不同,以前的防禦性編程說的是你寫的函數給別人使用,你不知道對方會丟甚麼數值進來造成崩潰,因此要做檢查。
現在是防止程序員(自己)被公司開掉。
中國用法
在中國,很多東西都是自己有一套跟世界不同的定義😁
什麼領低薪就是做功德,過勞不會死😂😂😂
做好你的工作就好, 不需要搞小動作藏什麼, 不需要藏什麼自以為是"獨門技術"的東西, 因為那個往往沒什麼.
這種防禦性編程通常只是讓自己舒坦一點,有點類似報復公司的感覺。
因為被裁掉後,只是從以前的同事得知後面接手的人痛苦抱怨而已,但並不會用那些奇淫技法就不會被裁員。
因為裁員並不一定是能力高低,有時是被人際關係弄掉的。
API 載入方法寫在DB裏,每次運行時自己直接去DB 找API table對表,還可以直接靠DB生成文件給同事,但如果沒告訴其他同事,他們在 code 裏連API入口位置在哪都很難找到;另外是每次寫新系統都使用最近學會的新技術,重點是其他人很懶根本不會去看那些東西,結果他們真的會被新技術淘汰;當然,其實佔山頭才是最重要讓公司不會隨便炒人的方法:其實即使系統沒賺錢,專門做公司內部幫助管理的系統,因為全體同事都用到,於是大家都會感受到實際作用,只要項目沒爛掉,老闆也會靠口啤知道實力。
這種玩法,應該是對應沒有制度,沒有流程,沒有規範的小公司。
有規模的公司或集團,會有規範,要求你的程式碼要怎麼寫。
有流程,DevOps,會自動從 Git 取出原始碼,然後進行 自動編譯 自動測試 自動封裝等等,甚至包含自動部署。
大公司也要求你要有相對應的程式文件。
你花這麼多腦筋搞這些手腳在小公司的意義在哪裡?小公司能給你的薪水就那樣,你動一堆手腳又如何?
其實只是綁死你自己在你自己寫的系統上。
如果你夠強,老闆不會讓你綁死在某個系統,而是會要你再去開發新系統。
你動的那些手脚只是卡住你自己。
最好的系統,應該是有良好的程式碼規劃。有完整的程式文件。有對應的自動化流程設定。
你隨時能把系統交給其他人維護或修改才是最佳狀態。
如果你一休假,系統有問題,沒有任何人可以維護處理,基本上,只有主管還有腦子,肯定會想辦法換掉人或換掉系統。沒人會要一個無法被第二人接手維護的不定時炸彈。
更不用說信任問題。
只要知道你會這樣搞,接下來你的系統程式碼肯定要被嚴加審查。
因為沒人知道你又動了什麼手脚。
再說了,後續公司有什麼重要系統也不會找你去做。因為不知道你會搞甚麼在裡面。
@@demodemo5991 在大公司的話,我估也是那樣,不過我那樣攪並不是要製造門檻,因為API寫進DB後用DB軟件查找會更容易,而且調整參數可以直接用DB軟件進行,而無需要返回code裏找出相關的參數位置;另外,即使公司沒有要我弄甚麼新系統出來,我自己也會弄出來,整出來後才遊說老闆用啊 XD 這絕對不可能在大公司裏做得到的,我這樣做也和薪水無關,單純就是想要做出自己想做的東西出來,如果這時還要看老闆面色或者公司規章,那職場生活肯定沒甚麼創意可言,還不如早點轉行 www
@@fenix20075 就個人的經驗,有規模的大公司不會有機會讓你這樣玩。
小公司,你寫系統,還要會安裝伺服器跟相關設定,基本上就一個人包山包海。
大公司,寫程式,網管,機房,資料庫管理,通通分離。你想一個人包山包海的玩,是絕對不可能的。
但是大公司願意花錢的,用的都是企業級的軟體。
這些軟體是你在小公司碰不到,聽不到的。
留著過勞死, 不留就餓死, 結果都要死
"职业道德"?这是我打滚多年,听到最让我笑得打滚的笑话。
竟然沒有講configuration 編程不難通常難在configuration
单纯写复杂的代码是没用的
第一,因为要写文档,写设计书。理论上不存在看不懂的代码,只要文档没偷懒的话。
第二,大工程一开始就制定代码规范了。制定标准,也是开发的一环。命名规则,空几个格,行的长度,甚至括号的位置都给你规定死……
第三,代码要审阅的。难懂的,不符合设计书的,不符合代码规范的,全部要退回,重新翻工。品质低的代码,无法通过验收。
自家的项目还好,骗骗不懂技术的老板,说不定可以糊弄过去。
那要是给人家做项目,无法通过验收的话,损失可就大了。浪费的成本就不说了,逾期了无法按标准完成项目,还要面临违约的罚金。
所以,如果乱搞代码,肯定就因为无法写出合格的代码,第一个被裁掉😄
-------------------------------------------------------------------------------------------------------------------
当然,这么多要求,就是为了去除代码的属人化。
代码不应该属于某个人。不管是10个人写,还是100个人写,只要按标准来,都应该像出自一人之手。
所以,项目一开始就已经防着程序员跑路,或者非谁不可的问题了😄
中國的奇葩環境出現的奇葩心理
掌握核心技術!
我们需要真正的工会
我覺得主要困難還是中國內部的經濟環境太差,投資環境太差,導致每個人都需要卷,唉😢
真正的防御性編程﹕趁年輕早點到前景好的跨國大公司, 進了谷歌蘋果亞馬遜被炒的機率就會變很少, 因為公司弄到裁員的話多半不是你的問題, 是老闆亂搞公司才會出問題
你若格局大, 能力強, 就跳出來自己當老闆. 40 歲錢賺夠退休金, 就不用搞什麼防禦性 coding 爛招數.
用三角函數來代替012
有copilot,沒有什麼好收起來的
你講得太明了 🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣
如果程序员集体罢工会怎么样?
罷工也沒用 因為程序員供過於求
是資本市場
这就是中国的现状咯,继续加速UPUP
我超喜歡為自己的程式增加新技術的
但問題是很少人真的知道原理
😂😂😂😂变看边笑
防御性编程的关键不是技术问题,是战略眼光问题,也可能只是因为你狗屎运,机会好.
技术上,几乎不用学,只要做事不太认真做,少画概要图,少写文档,少写注释. 战略要点, 一,找准并要潜伏到不太容易倒闭的大体量头部公司, 最好是公司内部有IT部门自研发软件的那种,比如银行,军事等. 二,做的是核心项目中的核心代码, 掌握清楚核心流程.预期软件至少要用5-10年以上.三,最好是熬至其它同事都走光. 公司如果裁员,就得掂量损失成本了.
嚴格來說,在公司上班過,永遠會知道一句話,這世界沒有任何人是無可取代的。
永遠會有方法處理某些系統,差別在於優雅的處理或是粗糙的處理。
是花大錢的處理還是花小錢的處理。
Defensive programming is a form of defensive design intended to develop programs that are capable of detecting potential security abnormalities and make predetermined responses.[1] It ensures the continuing function of a piece of software under unforeseen circumstances. Defensive programming practices are often used where high availability, safety, or security is needed.
-----wikipedia
沒有用的,要裁你就是直接裁,管你寫了多少防禦性編程都沒屁用
公司就是要倒了,沒錢就是沒錢,你寫的代碼哪怕媲美尤雨溪,在公司看來都是一坨屎
还不如想办法润出去,这样为了保住工作这么玩对自己有什么好处?你会有什么长进?35岁就想着躺平退休?难道你从来没有自己的想法,自己的理想吗?
只要能做到这个项目问你5分钟就能确定问题,但是问别人可能要查半天,一般你是裁不掉的
錯誤,你這是自我感動,妳社會經驗還不夠,很多領導人有90%以上是專業小白,或者是似懂非懂假董以為自己什麼都懂得人。
你在短時間解決問題,只會讓那些外行人以為這件事情非常簡單。並不會增加你的存在感。反而會讓他們覺得你做程式指令非常輕鬆簡單的錯覺。
你該做的事情是想盡辦法在裡面做加密,讓接手的人無法破解,讓其他接手的人看不懂你的編碼。這才是重點。不要跟公司"談感情"。
談感情、談道德那是在騙你的。你在工作就是要領錢,談感情幹嘛?公司不是你的,公司賺錢有多給你錢嗎?
不要跟沒良心的公司談感情。這是給你們這些大陸人的忠告。因為台灣跟大陸都有這種無良老闆,防禦性編碼是必須的。
歐美那邊會給股份、獎金,那些是良心老闆那沒話講,但是在大陸千萬別這麼做。
很多程式實際上就是一群草班檯子搭起來的。高手實際上可能只有1人,但是那個努力的高手可能花了一堆心血,領到最少錢也是有可能的。
@@Blaze-xk4vt 你忽略了前提条件,是同一个问题………而且,领导人是小白在互联网公司存在的可能性微乎其微,当然我说的是一线员工的领导人………… 我知道你想说的是有些能力差的员工经常加班活着看起来很忙会让让人感觉很尽责,但稍微有点能力的领导都能明白其中的问题。当然领导也喜欢这种员工,毕竟任劳任怨,但这种员工也是裁撤的第一选择……
@@不羁的风-g1k 你以後領悟後自然會理解我講的內容的。
我可以大概估算出你現在的年齡應該在18~24歲,心智年齡在最單純的時期,最容易被灌雞湯的年紀。
如果你超過我估算的年紀,那更慘,表示你連辨識職場經驗能力都沒有。
@@Blaze-xk4vt 很多大公司就是你这样的人多了才会衰落。上班的目的就是老板给钱,我给老板解决问题,别的都是扯淡……你的那些花花肠子能存活,只是因为你还有利用价值
不會組合語言的都 呵
7
你這種還不算是通用型防禦性編碼。
舉例來講把編碼做加密性,隨機性,具有自己的KEY才可以解開,這種才是最強代碼。
舉個最簡單的例子。
把code 1排在第一列,然後指定指令到第999行的指令,然後從999行指令在跳轉到888指令,指令888行的指令再跳到777。
另一個指令方式,障眼法
舉例來講:
我要得到的指令是"我是帥哥"
但我再編成上面寫的指令
一三八四學密我一三八四學密是一三八四學密帥一三八四學密哥一三八四學密一三八四學密
以上都是範例,有很多套組合拳可以讓自己的指令讓其他接手的人無法破解。
另一個增加自毀系統。
故意在系統內部開一個指令可以在顧客端打開的密技,讓自己知道,當自己在VPN架構下,遠端打開這個特殊密技,就可開啟資料庫加密,把所有儲存的檔案進行加密。遠端自毀爆炸。
如果是開發硬體,舉例是網路分享器,那就做一個強制後門,當被開除時,這後門持續存在,我們自己在丟一顆殭屍病毒到網路上散布,攻擊這後門讓他自爆。
我的留言以下有很多無良黑心積欠薪水跟超時工作的黑心雇主在下面用"非法"再帶節奏恐嚇你們了:
我在補充另外的方法,讓各位可以在法律上立足
1.每天做歷程記錄,自行做打卡驗證Log,並且拍照做GPS定位+背景圖拍照,每天一次證明自己有工作,並且超時時,故意拍一張不可造假的照片去做驗證。這讓些黑心雇主無理由找界。
2.自己的編程加密絕對要做,我下面出現這麼多這些黑心雇主留言,表示這種人數量非常多,各位程序員絕對要做編程加密,並且當雇主對你們提告時,你就說這是必要性的加密,你有權主張專利權跟著作權,並且雇主必須支付以上費用,你在做解密。
千萬不要被騙,而自行公開解密,在雇主誘拐等任何理由下都不可以妥協,必須要等雇主願意支付以上費用後再行解密。
並且各位可以跟法庭說這是你們自己的"權利"你有權主張,今天就算法院判你敗訴,那你更不可以解密,因為你敗訴後你都要賠錢了,你又更不可以解密讓對方拿到你們的"有價值"代碼。跟錢
這是
"搶劫""嫖竊"
不是雇傭關係。
以下留言很多黑心雇主得來的留言,你們睜大眼睛看看這些人用"恐嚇"嘴臉說你會"進監獄",實際上你們做的代碼就是你們"自己的智慧財產"。你自己做的成品,哪來的犯罪?
這些出生開始在顛倒黑白,各位不要被騙了
這些人越急,就表示這些做法絕對是正確的。
出社會要學會"鬥法",法律是人訂的(遊戲規則),而這些雇主玩弄(遊戲規則),你們自己要做防禦,這是"戰爭"。不能被遊戲規則給限制,籃球遊戲都有犯規戰術了,雇主都先犯規了,你們當然也要犯規才能打贏勝仗。
不要被嚇唬了!!
還有各位不要害怕犯法,因為在"社會道理上"你們是對的。
這些黑心雇主都先犯法違規超時了,他們犯的法不會比你們少。一個人在社會上不犯法是不可能的。
同時這些黑心雇主是"刻意犯法",那你們自然也要用法去鬥他們。
那些黑心雇主身上背的案件不會比你們少,他們都不怕犯法了,你們區區一點商業罪也在怕,那就表示你們太膽小了。
很多無良雇主都是"經常性"犯法,他來用你會"進監獄"恐嚇你們那是最可笑的,實際上可能那些黑心雇主"進監獄"比你們員工的次數還多
代碼就是"一張畫",你們畫好一張圖,而雇主把你的那張圖拿去列印賣給別人賺錢。那張圖是你畫的,本來就是屬於你們的製作權跟產權。
這是你們的"權利"。不是義務,今天雇主你叫他自己畫一張圖他也畫不出來。
他們沒有資格"持有"那張畫的"著作權",不要被騙了。那張原版畫不是他們的,你們要搞清楚,今天你只是出售給他列印的權利,不代表你的畫就是他們的。要搞清楚狀況。
那些黑心雇主處生講的理由只是在強詞奪理罷了
最後一個方法是讓自己進監獄最快的方法吧...
@@clmikechan 那我反問你黑心公司欠薪水跟超時工作合法嗎?
讓員工簽署"競業條款"但卻沒有"發放"競業條款的獎金15%以上,逼迫員工辭職,要員工賠償天價金額合法嗎?
公司拿取員工指令碼屬於員工智慧財產權。員工製作作品,著作權本屬於員工。公司霸佔資產取得製作權,卻沒發放著作權獎金的公司合法嗎?
這是給你們"防禦"用的,我沒說要你攻擊。別人攻擊我,我在進行防禦性攻擊。有什麼問題?
"你說我相信沒人敢用你?"笑死我了,我還不想替你工作哩,你什麼狗東西?
@@Blaze-xk4vt 那你就這麼做吧 我相信從監獄出來後沒人敢用你👏
@@clmikechan
笑死人,誰像你在大陸除了連呼吸不用罰款,通通都犯法,連挖一瓢路邊的泥土也犯法。
活奴隸,當奴隸太久了,連自己該有的權利是什麼都搞不清楚。
什麼不該做也搞不清楚
@@clmikechan 笑死人,林北直接賣軟體就好,誰跟你當員工。你什麼狗東西?