項目 | 內容 |
---|---|
這個做業屬於哪一個課程 | 軟件工程 |
這個做業的要求在哪裏 | 第一次做業 |
這個做業在哪一個具體方面幫助我實現目標 | 讀構建之法,學習軟件開發的不二法門 |
在結對編程的模式下,一對程序員肩並肩、平等地、互補地進行開發工做。他們並排地坐在一臺電腦前,面對同一個顯示器,使用過同一個鍵盤、同一個鼠標一塊兒工做。
看這本書以前一直覺得結對編程就是兩我的將寫好的程序湊一下就能夠了。可是本書徹底給我告終對編程的新概念。可是我對書中提到的結對編程所須要的編程環境仍是有一些懷疑,也就是感受上面的這段說的有些過於苛刻了。我想也是指意思上的吧,而不是徹底現實的工做中的吧,若是真的是那樣的話,那程序員只能在公司結對編程了。那豈不是每天要加班,並且很晚。若是公司直接提供住的地方倒還好_〆(´Д` )。程序員
隨着時間的推移,這幾類功能也會發生變化,例如手機的多點觸摸曾經是「驚喜」的功能,後來是全部廠家競爭的核心功能,再後來已是最基本的功能了。
隨着科技的進步,一些早期的核心技術註定會成爲隨處可見的通常產品。這裏面有兩點,一點是,總有一些核心技術是沒法替代的,可是這些技術更偏向於底層技術層,好比手機攝像機處理圖片的算法。另外一個是給你「驚喜」的人老是不斷給你「驚喜」,這裏面與公司創新文化有關。而不是僅僅侷限於,全部產品終將會成爲十分大衆化的產物。我認爲這裏面還有一個十分重要的因素那就是商業模式,好的商業模式每每會是簡單的產品獲取一個長期的優點,好比當時的谷歌提出瀏覽器,雖然他們的市場也靠算法打開,可是盈利倒是靠着谷歌的商業模式的。算法
函數最好有單一的出口,爲了達到這一目的,可使用goto。
在上學期的編譯原理的課程中,於同窗交流中,發現他確實用到了goto語句,並且當時以爲他用的goto語句沒什麼問題,還十分的方便。雖而後來沒有繼續和他討論這個問題,可是不用goto語句使爲了保證代碼的總體結構,我想在較大工程中,更應該考慮到項目的總體性,因此咱們更應該不使用goto纔對啊。固然這都是理論上的結果,沒在工程中實踐過,因此可能有其餘問題我不知道。編程
咱們的軟件要爲新手和專家提供可定製化的設計。一些操做方式,如快捷操做,用戶能夠自行調整。咱們還應該爲存在某些障礙的用戶(色弱、色盲、盲人、聽力有缺陷的用戶、操做鍵盤鼠標不方便的用戶等)提供必定程度的便利。對於長期使用某個軟件的用戶,軟件應該能適應用戶的使用習慣,讓用戶越用越順手,最後產生感情上的好感和忠誠度。
對於這裏的觀點。個人疑問是,一個產品首先是面對廣大用戶,所謂廣大用戶,我想應該是最普遍的人羣。因此咱們在產品開發的時候,某些產品是針對全部用戶的。好比說微信,人人都能用上微信,可是仍是有一部分人,(接觸手機少的老年人)他們使用微信起來仍是有一些麻煩。因此老人通常仍是偏向於用電話。那麼爲何微信不設計的更加對老人友好一些呢?我認爲這裏面須要考慮到產品自己面對的人羣。對於又特殊需求的人羣來講,咱們能夠專門的爲其設計其它的產品,若是一味的在針對大衆的產品上添加其它功能的話會使產品變得臃腫。固然,這只是我一己之見,實際的開發中應該會有更多須要權衡的問題。瀏覽器
軟件團隊裏除了能寫代碼、測試代碼和畫圖作設計的成員,還有一類角色,不作上面這些事情但也很重要,咱們叫他們項目經理——PM。
對於產品開發,在我看來這條鏈會是,客戶`產品經理工程師產品經理客戶的樣子,那麼項目經理應該要在實現於功能之間作到最好的權重,使一味的追求用戶的體驗仍是考慮到開發過程的構架,或者說是是否有必要開發呢?安全
這個想法看起來沒什麼錯,咱們不就是爲了成爲某個領域的專家,纔來上學,拿學位,但願拿到學位以後成爲專家,而後再開始這個領域的創新?可是統計數據代表,70%的創新者說,他們最成功的創新,是在他們的拿手領域以外發現的。
對於這個觀點,我想的是,各個行業之間是有必然的聯繫的,每每存在的狀況是,咱們處在這個行業,可是咱們的觀點也會對另外一個行業帶來創新,雖然這只是少數狀況下。可是有一個不可忽略的一點就是,關於創新的模式。沒有人說,不是該領域內的創新纔會對這個行業的發展起做用。好比說,有些創新每每只是商業模式上的,並非關係到核心的技術。微信
軟件最先是由Alan Turing在他1935年的關於可計算數字的論文中提出的,但他所指的軟件並非咱們今天所理解的軟件。最先在工程背景下出版的術語「軟件」是在1953年8月由Richard R. Carhart在蘭德公司提出的。函數
「軟件工程」一詞第一次出如今1965年6月出版的「COMPUTERS and AUTOMATION」中。瑪格麗特·漢密爾頓(Margaret Hamilton)提出了將該學科命名爲「軟件工程」的想法,以此做爲賦予其合法性的一種方式。那時人們對於軟件不過重視,對它的印象也是一種藝術,而不是一門科學。可是Margaret Hamilton卻堅信軟件是藝術和科學地綜合,應該爲發明者爭取應得的尊重,最後她也作到了。學習
Linux kernel開創者和Git的開發者——Linus說,Git使用了SHA-1並不是是爲了安全性,而是爲了數據的完整性;它能夠保證,在不少年後,你從新checkout某個commit時,必定是它多年前的當時的狀態,徹底一摸同樣,徹底值得信任。測試
主流項目管理軟件 | 優勢 | 缺點 |
---|---|---|
Microsoft TFS | 方便小團隊對於需求、進度的掌握,集成了項目管理、版本控制、BUG追蹤等功能,且與VS完美接合。 | 搭建複雜,硬件需求高 |
GitHub | 功能極其齊全,方便交流合做 | 學習成本較高,須要經過較長時間的學習、熟悉後才能流暢使用各類命令 |
Trac | 擴充性好,權限體系完備,較爲靈活 | 不支持多項目,漢化不完整,中文支持較差 |
Bugzilla | 免費,且有中文支持 | 只能管理缺陷,功能較少 |
Apple XCode | 自動建立分類圖表,撤回、重作、保存等經常使用功能使用方便,不須要命令、代碼 | 在版本更新後,部分插件可能失效,致使諸多問題。 |
Mercurial | 有revset,拓展性好,部署較爲簡單 | 強制向下兼容 |