中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

創(chuàng)新公司如何快速、低成本的完成網(wǎng)站開發(fā)?

2019-04-16    來源:xdite.net

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

我是一個(gè)軟件工程師,過去六年我都在開發(fā)網(wǎng)站。在新創(chuàng)公司里,速度節(jié)省時(shí)間、時(shí)間就是金錢、金錢就可以再去請更多工程師讓整個(gè)開發(fā)速度更快。學(xué)校并沒有教很多“軟體工程”的方法,或是怎樣才算是一個(gè)好的Programmer。這些東西在臺(tái)灣業(yè)界其實(shí)不存在的,大家都是邊做邊摸,從經(jīng)驗(yàn)中學(xué)習(xí)。我從書籍上和網(wǎng)路上學(xué)了很多能讓團(tuán)隊(duì)更有效率的做事方法,因?yàn)槲蚁嘈盼以谛聞?chuàng)團(tuán)隊(duì)里我必須先這樣,用業(yè)界公認(rèn)覺得快,且快得有道理的方式。底下是幾點(diǎn)可以和大家分享的。

1. 讓全團(tuán)隊(duì)都用一個(gè)成熟的開發(fā)框架和環(huán)境:

我的專長是 Ruby on Rails。我并沒有偏好推薦別人如果現(xiàn)在是用 PHP 或 .NET 或 JAVA,就要不計(jì)成本的導(dǎo)入新框架。就像我其實(shí)也沒有很喜歡硬導(dǎo)入 Scala 或 Node.js 一樣。它們可以在它們派得上用途的地方加分,但是絕對不能是主體。道理很簡單,我不認(rèn)為他們成熟到夠讓所有成員快速上手,不重造輪子。

一般團(tuán)隊(duì)喜歡用 PHP。因?yàn)?PHP 工程師好找,Rails 工程師不好找。但在我一路走下來的經(jīng)驗(yàn),我認(rèn)為這是一個(gè)“假命題”。因?yàn)樵谌肆κ袌龊凸緦?shí)際運(yùn)作的狀況里面,你會(huì)發(fā)現(xiàn)這個(gè)命題不怎么牢靠。沒錯(cuò),你是找的到 PHP 工程師,但很抱歉,很多人寫的 code 是不能用(更精確的說是 write only ) 的居多。(我沒有冒犯 PHP 開發(fā)者的意思)

塬因是 PHP 開發(fā)并沒有太多一致性的規(guī)範(fàn),基本上就是愛怎么寫就怎么寫。這導(dǎo)致了即使你團(tuán)隊(duì)里面就算里面有一個(gè)很厲害的開發(fā)者,也是沒有多大的用處。因?yàn)榇蠹? coding style 不一樣,甚至連網(wǎng)站結(jié)構(gòu)也不一樣。補(bǔ)人幾乎是沒有辦法發(fā)揮到加成作用,大家只能各寫各的,就算爆炸了也幾乎只有當(dāng)初的作者可以修。

這在我眼中是極度浪費(fèi)團(tuán)隊(duì)?wèi)?zhàn)力的元兇。

Rails 沒有這樣的狀況嗎?這是我覺得 Rails 優(yōu)勢的地方,它是一個(gè)非常熱門的 Framework(只有在臺(tái)灣你可能沒有感覺到他很熱門)。因?yàn)檫@是一套 Framework,也就是它本身有很強(qiáng)的約束性,至少 MVC 和 routing 規(guī)則,一般就算新手也不會(huì)亂放的太離譜。寫 code 有一定的潛規(guī)則存在。

開發(fā)中遇到任何東西發(fā)生錯(cuò)誤了以后,開發(fā)者幾乎可以用 Google 找到任何可能發(fā)生的塬因,修復(fù)完畢。而這幾乎不是一般自建 Framework 可以比的上的地方,如果你在公司自建一套 Framework,基本上發(fā)生任何問題,最后幾乎都得去煩當(dāng)初設(shè)計(jì)的 Architect 才行。(這也是很浪費(fèi)錢的地方,因?yàn)?Architect 的薪水都很貴)。

學(xué)習(xí)曲線過高,我也不覺得這件事真的存在。Rails 高手是難尋沒有錯(cuò),但是 Rails 中低手只要訓(xùn)練得當(dāng),生產(chǎn)力也是非常驚人。因此只要把重心放在如何協(xié)助一般想入門者,可以快速克服入門幾大門檻(搞定開發(fā)環(huán)境,RESTful,Plugin,Debug,Deploy),剩下的部分就可以靠網(wǎng)路教材和實(shí)戰(zhàn)訓(xùn)練出來。這也是我發(fā)明Rails 101 的塬因。

我設(shè)計(jì)這一套教材的目的是要讓所有新進(jìn)的開發(fā)者,在最長兩週時(shí)間內(nèi)要學(xué)完基本 Linux 指令、Git、Rails 所有基礎(chǔ)的知識(shí)、佈署、SCSS 撰寫等等,一個(gè)月之內(nèi)就能上戰(zhàn)場跟我們一起開發(fā)功能開發(fā)新網(wǎng)站。這樣的進(jìn)度很夸張嗎?不,不夸張。這里的每一個(gè)開發(fā)者都有這樣的程度,他們有些人應(yīng)徵時(shí)是連 Rails 都不會(huì)寫的。你能相信連 T 客邦的 PM 和 ART 他們也會(huì)寫 Rails 嗎?( no kidding)

寫 Code 規(guī)則怎么規(guī)範(fàn)?同事和我從社群中吸收了很多 Best Practices,我們把這些東西整理出來變成新手指南、最佳實(shí)踐,甚至是包裝成 Gem 和 Generator,越后進(jìn)的開發(fā)者能花越少的時(shí)間追上前輩,在短時(shí)間他們的作品也能跟前輩一樣預(yù)先搭載 Best Practices。我最近也開始在撰寫另外一本書 Essential Rails Pattern for Beginners

Rails 本身還有豐富的 Ecosystem,和預(yù)設(shè)的架構(gòu)最佳實(shí)踐就更不用說了。

新創(chuàng)團(tuán)隊(duì)資源很少,人事預(yù)算沒有這么夠,反而要巧妙的運(yùn)用天然資源并讓團(tuán)體戰(zhàn)力*3才行。

2. 功能設(shè)計(jì)給當(dāng)下使用,考慮一定程度的擴(kuò)充性:

我也不相信在新創(chuàng)團(tuán)隊(duì)有人可以預(yù)知未來,即使很多東西看起來未來往那個(gè)方向擴(kuò)充很合理。對我來說,我在設(shè)計(jì)功能時(shí)并不會(huì) overthinking,甚至我也禁止同事 overthinking。因?yàn)閷0钢凶罡叩能珓t是 get things done,not over design。

但這不代表不需要在設(shè)計(jì)上不需要留一定程度的擴(kuò)充性,在內(nèi)部的工作流程通常最后一道是有 refactor 整理空間的。在這時(shí)候同事會(huì)把雜亂的 code,整理回當(dāng)初規(guī)範(fàn)中必須寫的樣子。如果這是常見功能,一再出現(xiàn),就必須整理成 Library,或架構(gòu) Pattern。一但是 Pattern,擴(kuò)充性就留出來了。

在之后新的專案中,就可以拿上一個(gè)案子打下來的基礎(chǔ)一再重復(fù)利用再利用。甚至最后竟然還有 Event Generator 這種東西…(Authenication , Rails Admin, SEO, …etc.)。

3. 程式本身即註解

一般軟體實(shí)踐上本身也不贊成寫註解。而是鼓勵(lì)程式本身即要可以表達(dá)自己的行為。如果寫的程式亂七八糟讓人看不懂,進(jìn) review 時(shí)是會(huì)被回煺的。我們團(tuán)隊(duì)能夠被接受的程式是可以寫得很笨拙,但每個(gè)同事都看得懂。因?yàn)楸孔镜芾斫,其他前輩有時(shí)間可以去 refactor。但亂寫,之后就沒人動(dòng)得了了。

4. 盡力寫下所有的 documentation

世界上沒有人能夠?qū)懗鲆环萃暾南到y(tǒng)架構(gòu)書可以詳盡的描述現(xiàn)在系統(tǒng)上真實(shí)的狀況。但是一個(gè)好的 issue tracking system 和寫的 commit log,可以能夠很好的協(xié)助你了解為什么現(xiàn)在系統(tǒng)會(huì)是這樣設(shè)計(jì)的,為什么當(dāng)時(shí)會(huì)做出這樣的決策,導(dǎo)致程式必須要這樣設(shè)計(jì)。

在新人訓(xùn)練期時(shí),我通常會(huì)訓(xùn)練新人要有將任何實(shí)作上遇到任何的 detail 和狀況詳細(xì) document 在票上的習(xí)慣。而在完成整個(gè)專案時(shí)或者是技術(shù)架構(gòu)稍具規(guī)模雛形時(shí),要把這些 ticket 上的筆記梳理紀(jì)錄下來。

這樣會(huì)對整個(gè)團(tuán)隊(duì)程度的躍升會(huì)有非常強(qiáng)大的正面效益。同時(shí)在人員流動(dòng)(新進(jìn)或離職時(shí),衝擊會(huì)非常非常的小。

因?yàn)橹辽俸芏嗟?“basic” 的教育成本,在這部分會(huì)幾近于 0。一路都在 startup 的歷練,讓我很早就理解到一件事,人員流動(dòng)幾乎是無可避免的,所以重要的是要怎樣讓人員流動(dòng)造成的衝擊更小。

在新創(chuàng)事業(yè)讓同事投資一項(xiàng)新技術(shù),也是很昂貴的。所以要學(xué)的話,大家一定也都全都要會(huì),否則就會(huì)一直很貴。

這是 documentation 可以帶來的價(jià)值。

標(biāo)簽: 網(wǎng)站 

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:設(shè)計(jì)師也需要了解的一些前端知識(shí)

下一篇:向京東客服MM學(xué)習(xí)如何處理無智商下限的留言