譯者:legendsland  2007-10-29  編程很有意思,是因為我可以做一些很酷的東西,但是實際上讓我著迷的卻是那一行行代碼的語法和語義。保持對好代碼和壞代 " /> 免费观看一级特黄三大片视频,成人欧美日韩,欧美成人午夜精品一区二区

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

編程的藝術(shù):漂亮的代碼和漂亮的軟件

  英文原文:Beautiful Code and Beautiful Software
  譯者:legendsland

  2007-10-29

  編程很有意思,是因為我可以做一些很酷的東西,但是實際上讓我著迷的卻是那一行行代碼的語法和語義。保持對好代碼和壞代碼之間差異的敏感相當(dāng)激勵人,同時,去尋找編寫高效、自文檔化和經(jīng)過深思熟慮良好組織的代碼的方法將會永遠(yuǎn)吸引著我。這便是我對所在領(lǐng)域鐘愛的原因 —— 編程的藝術(shù) —— 這種奇妙的復(fù)雜物(complex craft)將會讓你花費一生的時間去成為大師。

  續(xù)Ruby之后,我學(xué)習(xí)了JavaObjective-C,我開始享受到底層軟件開發(fā)的樂趣。我是在一個討厭繁縟語言開發(fā)的社區(qū)(Rails社區(qū))成長起來的,但是當(dāng)我第一次接觸這類語言之后,發(fā)現(xiàn)我喜歡上了它們。它們(和Ruby比較起來)是不同的語言,但仍然具有它們特有的樂趣。以Java 里面的for循環(huán)為例,當(dāng)以我的高級程序語言的背景,編寫了一些這樣的基礎(chǔ)代碼后,發(fā)現(xiàn)這種代碼可以更好地幫助我理解面向?qū)ο蟮囊恍嵺`,但同時我也對for循環(huán)本身產(chǎn)生了興趣。這不僅僅是優(yōu)美的語言吸引了我,也是語法背后的邏輯和不同語法形式讓我著迷。計算機語言,以及它們之間的差異,本身就極具魅力。

  當(dāng)這學(xué)期我在學(xué)校學(xué)匯編語言的時候,獲得了相同的滿足感。匯編很繁瑣,有時相當(dāng)痛苦,但是讓我去思考使用這種新的方式去實現(xiàn)基本的程序功能,跟痛苦相比,是完全值得的。當(dāng)然,意識到自己編寫的代碼如此底層,也讓我享受到了極客(Geek)的快感。

  情況變得更糟了!在今年的早些時候,當(dāng)我讀到Wolf的程序員不喜歡編碼時,我經(jīng)歷了一個很不錯的自我發(fā)現(xiàn)過程。我確實是喜歡在編碼過程中解決問題,進行優(yōu)雅地創(chuàng)造,以及通過編碼來學(xué)習(xí),但實際上我意識到我也是因為喜歡編碼而編碼。至少,這就是我享受CSS和XHTML的方式。我擁有大量的Web前端開發(fā)經(jīng)驗,并且最近沒怎么碰到新的問題(事實上,難搞的問題和我從沒有見過的Bug會讓我異常興奮)。盡管如此,我仍然喜歡這些東西。比如,整理一下我完全理解的代碼讓它變得好看點,就像是在我的筆記本上重復(fù)地畫一些卡通貓,或者是坐在鋼琴前重復(fù)地彈三個相同的音調(diào)一樣,這讓我感到放松。甚至僅僅去閱讀漂亮的CSS(我自己寫的CSS),上面每一樣?xùn)|西都整齊有序、縮進良好,并且進行了正確的層疊(CSS里面很重要的一種技術(shù))而感到心情舒暢;相反,當(dāng)我看到某些論壇的樣式表里面混亂的縮進、多余的空行、被注掉的一些老代碼,以及通過故意使用錯誤的屬性名來屏蔽掉的樣式的時候,我感到難受,就像是生病了一樣。

  當(dāng)你可以如此輕易地被激起興趣 ,就是上面這個結(jié)果。僅僅是墻上的影子就足夠讓你繼續(xù)生活下去(譯注:看來,她對柏拉圖很有興趣)。你得不斷地重新審視自己的敏感度,以便讓你的聲色品味與你口袋里的鈔票相匹配。(你對代碼或者軟件的品味來自于你自己的能力水平)

  這樣來講吧,這些天我一直在思考(整個)軟件開發(fā)中的軟件部分。特別是軟件中的用戶界面設(shè)計。今年在BARcamp,我喜歡Aza Raskin的一個實驗,他讓所有的開發(fā)人員舉起手,然后是設(shè)計人員,接著他說那些第一次舉手的人在第二次也應(yīng)該舉手。所有的開發(fā)人員必須是設(shè)計人員。至少,幸運的是,所有的開發(fā)人員在他們的工作中可以對軟件設(shè)計發(fā)表自己的意見。

  我越來越對軟件開發(fā)中設(shè)計部分的重要性感到興奮,尤其是當(dāng)我反思我對過去所做的事情在不同方面的熱情與心得的時候。在Web應(yīng)用領(lǐng)域,開發(fā)和設(shè)計一般是分離的。有時候,設(shè)計部分的工作在項目中被最少化了,這是因為客戶是為軟件的特性買單,而不會為漂亮的設(shè)計付帳。在一個項目中,我同時扮演了開發(fā)和設(shè)計的角色,回想起來,我對只分配了兩天時間來完成可視化的設(shè)計感到耿耿于懷。這決不是兩天的事情。這是一個很復(fù)雜的應(yīng)用軟件,需要花上幾周的時間與客戶交流和迭代設(shè)計。不幸的是,客戶并不會因此而買單。相反,客戶對我花了幾個小時的原型感到無比滿意,就這樣,我們有了這個產(chǎn)品的第一個版本。

  在今年的C4上我有了另一次覺悟。好像很多Mac下的開發(fā)人員都在(私下)做自己的產(chǎn)品。這樣,他們真的必須既是設(shè)計師又是開發(fā)人員。事實上,設(shè)計是最重要的部分,并且用戶體驗和制造了不起的產(chǎn)品看起來要比代碼本身更具有熱情。在C4的一個晚上,有人在向我描述他的工作的時候,無意中幫助我看到了這一點:編碼這個基本要素是最容易的部分。那僅僅需要幾周而已。真正困難和耗費時間的是搞定UI的規(guī)格。

  哇噢,我在想,為什么這看起來如此正確?為什么對我而言是這么的酷?哦,是的,那是因為我是從設(shè)計人員開始的。我享受開發(fā)、設(shè)計和藝術(shù)的方式絕然不同,這就導(dǎo)致了這三種享受之間巨大的差別。我一直在嘗試整合開發(fā)和藝術(shù)(這兩個方面),但是我其實應(yīng)該整合這三個方面。

  畢竟,我的天啊!我們想要漂亮的代碼或者是漂亮的軟件嗎?我生活中的另一個觀點是:由于我的思想極具開放性和強吸收性,我發(fā)現(xiàn)我自己可以接受各種相互矛盾的觀點,有時候甚至是相反的觀點。這種問題目前不會困擾我,因為我正處在探索模式的階段,而不是在只接受我所相信的階段,但是,當(dāng)然啦,為了保持我思想自身的一致性,當(dāng)它們有點頭緒的時候必須要好好的整理一下。

  所以,為了后續(xù)的考慮,我按照軟件開發(fā)給人們帶來的由內(nèi)至外的收獲,簡單地列出了這個清單。我沒有選擇其他一些極好的介質(zhì),比如社區(qū)、開源和挑戰(zhàn)等等,是因為這些都很難按順序列到里面去,不過我相信你可以領(lǐng)會到其中的要點。這個順序?qū)ξ叶允菢O度重要的,因為心理學(xué)家講過,內(nèi)因的力量更為強大,更能讓你堅持。比如,一個為了想從擊打和踢腿中感覺到力量和興奮而參加空手道訓(xùn)練的人,肯定要比僅僅為了健康的人更容易達(dá)到黑段水平。

  編程也是如此嗎?

  * 代碼感(譯者:還記得圣斗士里面的第六感嗎?)
  * 編碼的知識
  * 享受計算機邏輯
  * 享受計算機語言
  * 優(yōu)雅的語法
  * 優(yōu)美的語義
  * 學(xué)習(xí)代碼
  * 問題求解
  * 了解問題
  * 獲得可用性
  * 完成一個產(chǎn)品
  * 優(yōu)雅的軟件
  * 解決人的問題
  * 解決商業(yè)的問題
  * 滿足市場需求
  * 賺錢
  * 有一個穩(wěn)定的職業(yè)

  哪個是最能持續(xù)激勵人的收獲?更重要的是,哪種動機可以制造出最好的軟件?有時候我很想在這個話題上做一個很正式的研究,當(dāng)我們希望軟件既滿足可用,又具備可維護性,同時還叫買,而且還要滿足一些其他的目標(biāo)的時候,我很確信這個答案就是清單上面各種條目之間健康的平衡。我同時還很確信這種平衡性是因情況和人而異的。現(xiàn)在,我已經(jīng)勾畫出了一條鐘形曲線(正態(tài)分布),那些可以促成最佳的軟件的動機位于曲線的中間部分;但是,我想實際上所有的動機在某些方面都是有益的,并且當(dāng)程序員有她自己的優(yōu)先級的時候,動機自然是越多越好。

  我們領(lǐng)域的悲哀在于大多數(shù)程序員并不會欣賞上面大部分的收獲,尤其是那些更為重要的。這個清單很有用,因為大多數(shù)編程的工作無法滿足那些關(guān)心所有這些事情的人。同樣地,我很好奇,如果我們每個人都從內(nèi)心關(guān)心我們做的東西,并且不會有人為了穩(wěn)定的工作而去選擇計算機科學(xué)者個專業(yè),那么這個(軟件)領(lǐng)域?qū)蔀槭裁礃幼幽兀课液闷孢@樣會對整個世界產(chǎn)生什么影響?

  我想我每年都應(yīng)該反思一下這種問題,以便成為一個更好的軟件開發(fā)人員。盡管如此,我還是覺得我的信念已經(jīng)固定下來了:越是成長,就越希望能夠在一個足夠自由的環(huán)境里面創(chuàng)造美妙的東西。值得注意的是,美妙和自由都是模糊和主觀的概念,可以任意地去理解。我只知道,在大多數(shù)的編程工作中對代碼之美和軟件設(shè)計之美的妥協(xié)永遠(yuǎn)會讓我感到不滿。如果到最后,我選擇成為一個自由開發(fā)者去做Web設(shè)計,以滿足這種自我的生活風(fēng)格,我不會對此感到意外。

  最終我會從計算機上面退休,并且用我剩下的時間在國外美麗的農(nóng)場里面畫畫。或者是,過上在街頭涂涂抹抹和牢房之間互動的感性城市生活。想象一下,當(dāng)我覺得技術(shù)玩完了的時候,接下來要去哪里將是很有趣的。但愿永遠(yuǎn)不要發(fā)生這種事情,因為我希望成為一個酷酷的guru奶奶,到時候給孩子們上一些編程的必修課呢!(Fantastic guru girl !!)

it知識庫編程的藝術(shù):漂亮的代碼和漂亮的軟件,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产福利最新手机在线观看 | 国产原创精品视频 | 久久人人青草97香蕉 | 久久国产精品国产精品 | 国产玖玖在线 | 草色网 | 91精品国产色综合久久不卡蜜 | 欧美激情图片区 | 精品久久久噜噜噜久久7 | 欧美三级在线 | 国产乱码在线观看 | 精品久久久久免费极品大片 | 97精品国产自在现线免费观看 | 性天堂网 | 亚洲国产青草 | 激情网页 | 欧美人体极品大胆露私 | 亚洲成人99 | 欧美性色xo影院永久禁欲 | 天天爽天天操 | 99九九精品免费视频观看 | 久久不射网 | 91免费播放 | 999网| 深爱婷婷网 | 在线黄色免费 | 日本无吗免费一二区 | 成人精品一区二区激情 | 91色交视频 | 久久精品国产亚洲片 | 亚洲伊人久久大香线蕉啊 | 色妹子综合 | 小视频国产 | 久久99精品久久久久久久不卡 | 色在线播放 | 女人被爽到呻吟娇喘的视频动态图 | 狠狠久久久久久亚洲综合网 | 91嫩草视频在线观看 | 九九视频热 | 亚洲人人看 | 加勒比一本大道香蕉在线视频 |