摘要:前篇文章一發(fā),立馬有程序猿說解氣呀,我也待在這樣的一個(gè)公司,所以我怎么能做出好的東西呢?,F(xiàn)在不噴產(chǎn)品不噴測試不噴領(lǐng)導(dǎo),僅僅從程序猿的角度說說,你都有做過哪些湊合的事,然后就湊出了一鍋粥。這種無組織無紀(jì)律的行為是壓垮駱駝的那根稻草。
前篇文章一發(fā),立馬有程序猿說:解氣呀,我也待在這樣的一個(gè)公司,所以我怎么能做出好的東西呢。
呵呵,那你誤會(huì)我的意思了,我可沒說哪種公司不好,我覺得經(jīng)歷過的都好。當(dāng)然咱吐槽還是要吐的,噴完了領(lǐng)導(dǎo)們,這篇文章來噴自己好了?,F(xiàn)在不噴產(chǎn)品不噴測試不噴“領(lǐng)導(dǎo)”,僅僅從程序猿的角度說說,你都有做過哪些“湊合”的事,然后就“湊”出了一鍋粥。
1. 單元測試
首當(dāng)其一的我覺得就是這個(gè),你可能會(huì)想哎現(xiàn)在就這么兩三條槍,UT那是大團(tuán)隊(duì)的事,我這有啥事吼一嗓子都解決了??墒且坏┠愎镜拈_發(fā)“戰(zhàn)線”有點(diǎn)長,比如APP/WEB/第三方接口都做的情況下,測試變得困難起來,API OK了APP沒到位,或是上了線了才發(fā)現(xiàn)出了問題。
一旦這個(gè)流轉(zhuǎn)的線路拉長、層級(jí)增多,就有人開始“巧合性編程”,自測就基本靠猜了。尤其是那些隱藏得很深的操作,在APP和WEB上點(diǎn)一次都很麻煩,就更別說反復(fù)的測試了。
更重要的一個(gè)缺點(diǎn)是組織結(jié)構(gòu)是渙散的,今天想起來加一個(gè),明天誰喊嗓子再加一個(gè)。這種"無組織無紀(jì)律”的行為是壓垮駱駝的那根稻草。
2. 組件模塊
接上面,還是體現(xiàn)在系統(tǒng)思考上,如果所有的思維都在功能點(diǎn)上,沒人爬上山頂向下看看這房子是不是要倒了,所有的力量都是在蓋樓、蓋樓,最終的結(jié)果可能就是樓歪歪了。
事實(shí)上這個(gè)“蓋高樓”的觀點(diǎn)并沒錯(cuò),對(duì)企業(yè)發(fā)展來說,“時(shí)間就是生命”。但忽略了模塊思維其實(shí)是在浪費(fèi)更多的時(shí)間。組件的價(jià)值在于可重復(fù)驗(yàn)證的程序和可定勢識(shí)別的操作,無論對(duì)開發(fā)的工作量化還是對(duì)用戶的使用體驗(yàn),都有較高的實(shí)施優(yōu)勢。
實(shí)際中也有很多優(yōu)秀的方案可以直接拿來用,對(duì)于啟動(dòng)者來說,更該做的是找到匹配的方案,做好膠水層把多個(gè)體系、模塊、組件更順暢的組織起來。
3. 持續(xù)重構(gòu)
軟件工程相對(duì)現(xiàn)實(shí)中機(jī)械、地產(chǎn)的工程,我覺得一個(gè)很大的優(yōu)勢就是可以拿到實(shí)際環(huán)境里檢驗(yàn)的同時(shí)隨時(shí)調(diào)整結(jié)構(gòu)。如果可能,讓不同人擁有不同的工具包,在保障整個(gè)系統(tǒng)的穩(wěn)定性和每個(gè)人特長發(fā)揮的同時(shí),持續(xù)的將其中優(yōu)秀的工具、范例集成到公共庫。
4. 基礎(chǔ)樣例
想要新來的人入門快,最好的辦法就是能用最簡單的方式告訴他該怎么做,拷貝一個(gè)隨便改改就能工作起來的范例是個(gè)好主意,不至于來了新人不但沒給團(tuán)隊(duì)帶來力量提升還把事情搞得更糟。
太晚了(2015/3/7 0:02),眼睛睜不開了,先這樣吧。其實(shí)我想說的就是,你的代碼是你自己弄臟的,今天省了事了明天就攤上大事了,老老實(shí)實(shí)的寫UT,認(rèn)真的把枝干拾掇干凈吧。最后貼上我最愛的《K.I.S.S》與諸君共勉:
KEEP IT SIMPLE, STUPID!
編寫只做一件事情,并且要做好的程序;編寫可以在一起工作的程序,編寫處理文本流的程序,因?yàn)檫@是通用的接口。這就是UNIX哲學(xué)。所有的哲學(xué)真正的濃縮為一個(gè)鐵一樣的定律,高明的工程師的神圣的“KISS 原則”無處不在。大部分隱式的UNIX哲學(xué)不是這些前輩所說的,而是他們所做的和UNIX自身建立的例子。從整體上看,我們能夠抽象出下面這些觀點(diǎn):
模塊原則:寫簡單的,通過干凈的接口可以被連接的部件。
清楚原則:清楚要比小聰明好。
合并原則:設(shè)計(jì)能被其它程序連接的程序。
分離原則:從機(jī)制分離從策略,從實(shí)現(xiàn)分離出接口。
簡單原則:設(shè)計(jì)要簡單;僅當(dāng)你需要的時(shí)候才增加復(fù)雜性。
節(jié)儉原則:只有當(dāng)被證實(shí)是清晰,其它什么也不做的時(shí)候,才寫大的程序。
透明原則:為使檢查和調(diào)試更容易而設(shè)計(jì)。
健壯原則:健壯性是透明和簡單的追隨者。
表現(xiàn)原則:把知識(shí)整理成資料,于是程序邏輯能變得易理解和精力充沛的。
意外原則:在接口設(shè)計(jì)中,總是做最小意外的事情。
沉默原則:一個(gè)程序令人吃驚什么也不說的時(shí)候,他應(yīng)該就是什么也不說。
補(bǔ)救原則:當(dāng)你必須失敗的時(shí)候,盡可能快的吵鬧地失敗。
經(jīng)濟(jì)原則:程序員的時(shí)間是寶貴的;優(yōu)先機(jī)器時(shí)間節(jié)約它。
產(chǎn)生原則:避免手工堆砌;當(dāng)你可能的時(shí)候,編寫可以寫程序的程序。
優(yōu)化原則:在雕琢之前先有原型;在你優(yōu)化它之前,先讓他可以運(yùn)行。
差異原則:懷疑所有聲稱的“唯一真理”。
擴(kuò)展原則:為將來做設(shè)計(jì),因?yàn)樗赡鼙饶阏J(rèn)為來的要快。
注:以上文字為了整潔我有極小的不妨害理解原標(biāo)準(zhǔn)翻譯的改動(dòng)。
獻(xiàn)丑了,晚安!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64278.html
摘要:面試官說那我問你一個(gè)哲學(xué)的問題,為什么有數(shù)據(jù)結(jié)構(gòu)這種東西哇,這是啥,巴拉巴拉扯了一通,大致就是物以類聚,人以群分,先人積累下來的經(jīng)驗(yàn),這些讓我們更方便處理數(shù)據(jù)啥的。 前因,沒有比摸魚有趣的事了 距離自己被外派(俗稱外包)出去,已經(jīng)過了快五個(gè)月,工作的話,很閑。人啊,一定保持好的習(xí)慣,懶惰是會(huì)上癮,日常摸魚,懷疑人生,我是誰,我在哪,我要干什么。 中午吃飯的時(shí)候,收到了boss直聘的一條...
摘要:網(wǎng)絡(luò)啟動(dòng)開啟了一個(gè)共享的新時(shí)代,與實(shí)體經(jīng)濟(jì)的結(jié)合讓項(xiàng)目變得更加有意義,區(qū)塊鏈已經(jīng)走向了我們。直到年,互聯(lián)網(wǎng)和區(qū)塊鏈終于從概念上走到了一起,就是這場流行起來的共享之風(fēng)。風(fēng)險(xiǎn)當(dāng)然,伴隨著區(qū)塊鏈項(xiàng)目的毫無疑問是高風(fēng)險(xiǎn)如影隨形。 作者簡介:董天一 ,IPFS/Filecoin中國區(qū)技術(shù)布道人 ,《IPFS指南》作者。畢業(yè)于北京大學(xué)軟件與微電子學(xué)院曾擔(dān)任甲骨文亞洲研發(fā)中心(中國)數(shù)據(jù)庫開發(fā)工程師...
摘要:參考資料事件代理很久很久以來,總感覺事件發(fā)生與事件代理到之間沒什么鳥區(qū)別。要搞清楚什么是事件代理,就需要先搞清楚什么是代理。,怎么從字面來理解事件代理一詞的含義后文有講。于是,看了事件代理的資料。這一過程被稱為事件冒泡。 參考資料:js-事件代理 很久很久以來,總感覺事件發(fā)生與事件代理到之間沒什么鳥區(qū)別。 最近,又看了一下,感覺區(qū)別其實(shí)真不大!看怎么理解吧。 要搞清楚什么是事件代理,就...
摘要:前言在開發(fā)技術(shù)和應(yīng)用市場完全成熟的今天,有人希望深耕技術(shù)打造出自己的一片天地,也有人想廣泛學(xué)習(xí)在程序員市場中游刃有余。而這本書上千的引用論文,給我指明了一條系統(tǒng)學(xué)習(xí)理論的明路。 ...
閱讀 3406·2021-09-22 15:17
閱讀 2761·2021-09-02 15:15
閱讀 1794·2019-08-30 15:54
閱讀 2014·2019-08-30 14:02
閱讀 2544·2019-08-29 16:58
閱讀 3003·2019-08-29 16:08
閱讀 1345·2019-08-26 12:24
閱讀 1670·2019-08-26 10:41