<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【軟工作業&思考】關于軟工的一些概念性理解暨第一次閱讀作業

      概述

      項目 內容
      本次作業所屬課程 2019BUAA軟件工程 周二班
      本次作業要求 第1次個人作業
      當然,比這個更重要百倍的還是實實在在的思考,這也是標題如此命名的原因
      我在本課程的目標 在原有實踐經驗的基礎上,系統化學習軟工領域的理論知識,總結以前以及現在的得與失,提高自身知識水平(怎么一股生命在流逝的味道
      本次作業的幫助 將《構建之法》與實際經驗進行結合

      好吧,既然是概述,那么就先說點什么,光一個表格個人感覺表現力太有限了。如果對筆者的自報家門沒啥興趣的話,可以直接跳到下一節。

      首先,本人很早就有計算機方面的技術背景(早到什么程度呢,我學編程那會,Google在大陸還能直接上,QQ號還都是8位的),在編程方面,私以為還算是略知一二,或者說有那么一點點的經驗。

      其次,本人在大一開始就進行過實用系統的開發,其中包括:

      • Questionor刷題網站(鏈接:https://questionor.cn,現在每屆北航學子刷航概題還都在這上面)
      • 同袍APP(最懂北航學子的手機app,不過現在出于一些復雜原因暫時無法使用
      • 若干以賺錢為目的的外包項目(大概,在大一就能綽綽有余的cover掉包括學費在內的一切個人支出)

      嘛。。。先打住,再這樣下去實在有點像是產品軟文了。[捂臉]

      此外,筆者帶過不止一個技術開發團隊,作為團隊的leader。踩過坑,也從屎山里面爬出來過;勝利過,也失敗過;團隊里大家一塊嗨過,也層不止一度出現嚴重分歧,甚至分崩離析過。其中,私以為還算是有一點點略微的心得。

      說這些的目的呢,其實特別簡單。筆者從沒認為自己如何如何,只是闡述一下客觀事實,做一些微小的工作,或者說,鋪墊。以防止下面看到有些內容的時候,被認為是在分享剛編的故事。

      好了打住,先說到這。下面是正文。

      個人的思考

      其實說來,本人的疑惑和思考可能和大部分同學有些不一樣。所以我就盡量按照我的方式來表達,并且可以的話也說一些我對其他同學疑惑的理解吧。

      思考一:PM做開發和測試之外的所有事情

      PM做開發和測試之外的所有事情

      這話確實很有道理,說的也沒錯。(或者倒不如說,非技術背景出身的PM也沒辦法插手這事

      然而,要是,PM也是技術背景出身,甚至還是有一定經驗的技術人員呢?

      筆者自己就遇到過類似的情況。

      在筆者之前早期帶的團隊里面,就是會出現有的時候全體進展緩慢的情況。這個其實也正常,都是身邊的同學,不是誰都有寫過十幾年的代碼的。

      于是,尤其是ddl迫近的時候,筆者我當時遇到這樣的情況,常常自己就看不下去了。一拍腿,老子自己上。

      果不其然,自己一上陣,問題最終就很快被解決了。

      如果只從結果的角度來看,這當然是皆大歡喜——這世上從來就沒有過啥好手段壞手段,能解決問題的就是最好的。

      對于臨時的小隊伍來說,這還算好,最起碼結果是好的。然而之后發生的事情證明,這種做法對于長期的團隊來說,是非常危險的

      筆者帶過的一個團隊,當時就這么干的。期初幾次,筆者一個人單挑的成效都很不錯。越到后來,就發現大家都開始起不到作用。筆者甚至一度很生氣,去質問過他們,甚至逼過他們??墒亲罱K,筆者得出了一個令人絕望的答案——他們真的啥也不會了。

      或者換句話說,在該鍛煉隊伍成員,該磨合團隊協作模式的時候,這些事情一樣都沒有做。最終,這個所謂被稱之為團隊的東西,完全成了由一個強力單體,和若干起不到任何作用的人,構成的烏合之眾。對于強力單體,看似有團隊,實則孤立無援,最終遲早被硬生生累垮。對于其他人,看似有團隊,實則毫無歸屬感,自然不可能愿意賣力,就算愿意,也并不能真正的幫上忙。

      這還不算完,如果有一天,這個團隊的強力單體出現了狀況的話,那么,這個所謂的團隊,會立刻面臨滅頂之災,且毫無自保的能力。

      這樣的故事其實歷史上已經上演過無數次:

      • 諸葛亮鞠躬盡瘁,死而后已。他在的時候,把三國中最弱的蜀國治理的井井有條。然而他事必躬親,于是導致的局面就是,其他不如他的人才完全沒有成長的空間。等他一死,蜀國一下子就出現了嚴重的人才斷層。很快,蜀國就滅亡了。
      • 月廚們都知道,Saber生前的經歷。甘愿當圣人,想要一己之力拯救臣民。然而等有一天光輝不再的時候,就注定要面臨生命中的卡姆蘭之丘,內心無比掛念的臣民也一樣得不到任何拯救。

      所以,個人認為。就算PM,或者說領導,有著極強的個人輸出能力,也絕對不可以隨隨便便就親自上陣(當然,偶爾救急可以,但是絕不可以成為常態)。不是因為什么領導的架子,而是出于整個團隊的可持續發展考慮

      不過,這里面具體的分寸,也確實是一個值得深思的問題。從一碗雞湯爬出來,立馬跳進另一碗雞湯,也不是正確的思考問題方式。筆者也認為,自己目前這塊實際上做得還遠遠不夠成熟。

      思考二:Bug的定義

      問題源自guzhanpeng同學的博客。第一個疑問,里面說到了bug的定義問題。

      首先我想說的是,Bug本身就不是一種單一的定義。

      這位同學百度搜索到的結果是:

      程序錯誤(英語:Bug),是程序設計中的術語,是指在軟件運行中因為程序本身有錯誤而造成的功能不正常、死機、數據丟失、非正常中斷等現象

      這個當然沒有錯,這個是程序設計意義上的bug。

      然而,實際上從用戶、從需求的角度來說,不符合需求的,就是bug。這個bug是產品需求意義上的bug。這兩者并不存在矛盾抑或是沖突

      或者也可以說,bug可以一般性定義為和期望不符的狀態及其誘因

      • 對于程序而言,結果錯誤、運行時錯誤、崩潰,這確實就是和期望的正確結果不符的狀態。
      • 對于產品而言,你程序就算對了,但是人家要個蘋果你給人家運來一車梨,還美其名曰梨很好吃我們也很辛苦,這顯然就是在扯淡了。沒錯,這也是與期望狀態不符的狀態。

      綜上,其實所謂bug的兩種定義(當然,也可能有更多的層面),本質還是統一的,只是站在了不同的需求立場上而已。前者是程序層面的正確,后者是產品層面的更優。根本上,BUG與否,還是取決于想要的是什么。

      思考三:領頭羊是否必要

      17.1 “領導力”中,強調了團隊領導的重要性。聯想到即將開始的團隊編程,領導該如何確定?很可能出現兩種情況:一種是團隊里有個大牛,由于他的技術最好,大家都聽他的。另一種是大家互相討論,少數服從多數,實際上沒有一個真正的領導。實際上,由于大家都是技術人員,對項目方向上的把控水平可能都差不多,所以我認為沒有領導的小團隊,應該也是可以的吧?

      這個是來自于Jason同學的問題。

      先說結論,要,而且非常重要。然后,請聽我慢慢分析。

      這位同學的觀點中,有這么一句

      團隊里有個大牛,由于他的技術最好,大家都聽他的

      這句話本身也是錯的。錯的原因,思考一中已經有了詳細的說明。即便在決策層面,要是決策權完全捆綁在了一個emperor的頭上,那么這就像極了封建專制制度(沒有褒義或者貶義)——一人獨裁。

      一人獨裁的好處是很明顯的,顯然這位同學也明白這個好處——只要這個leader足夠的靠譜。但是一人獨裁的壞處,其實和好處一樣的明顯——只要這個leader不夠靠譜,團隊的結局就注定只有滅亡。中國歷朝歷代無數的開國之君,和亡國之君,他們都已經用他們一生的經歷,向后人證明了這件事。

      那么既然不應該一人獨裁,那么,就應該絕對的民主么?答案是否定的。

      反面教材,其實也很好找——現在的很多歐美國家,也就是很多人口中“皿煮”的圣地,就會存在這樣的問題。是的沒錯,他們的三權分立、議會制,確實在權利的制約平衡上做的相當不錯。

      然而這樣也帶來了新的問題。俗話說得好——屁股決定腦袋。各方的立場與利益不太可能總是一致,既然不一致,那么在這樣的體制下,不同勢力之間的通力協作將變得幾乎不可能,反而完全變成了權力的博弈戰,內耗極其嚴重。

      在人的團隊中,雖然沒那么復雜,但是大致道理也是類似的——如果一個團隊,沒有一個明確的領頭羊的話,那么這個團隊的秩序將是很大的問題。而秩序,則對于達到團隊最優解而言,是至關重要的。簡而言之,如果一個團隊里面,僅僅是因為所有人水平都差不多就所有人地位絕對一致的話,那么帶來的后果就是團隊工作的協調和調度上將會變得極為困難,甚至出現集體負責,等于集體不負責的情況。遇了事情,意見不一,始終沒人拍個板,也是一件非常麻煩的事。

      就筆者本身而言,筆者也曾在整體實力較強的團隊里面待過(在那個團隊里面,幾乎所有人都有和筆者差不多少的實力),然而那個團隊依然是有個leader的存在,統籌規劃著整個團隊的事務進展,一板一眼調配著資源。其他人也都參與決策,各抒己見,但是猶豫不決之時,一定是leader拍板。

      綜上,我的結論是,領頭羊是必要的,但是也不可以搞成整個團隊只有唯一的領頭羊參與決策。民主是必要的,但是過度的民主還不如專制來的靠譜。

      思考四:編程之法

      只要有助于程序邏輯的清晰體現,什么方法都可以使用,包括goto。

      這話,在現在看起來是個政治不太正確的話,尤其是在這個已經廣泛推薦使用結構化程序設計的年代,這聽上去似乎確實像是歷史的倒退。

      然而,這句話的本質確實對的

      看到有些同學認為這話不對,其實我覺得,他們只是沒有理清楚因和果的關系。

      首先,在軟件開發的蠻荒時代,先輩們之所以提出了結構化程序設計,原因就是,不結構化的話,程序質量將變得難以保證,工程項目也將難以維護。于是指定了一個標準,供后人參考。

      然而,不要忘了,這個標準的意義在于,讓軟件質量變得更好。而不應該是反過來的。

      早在先秦,商鞅便說過

      治世不一道,便國不法古。

      任何的法度,任何的規則,其根本目的都只有一個——追求最優地解決問題

      而如果死搬教條,卻反而忽視了問題的本質,走的太遠忘了為啥而出發的話,那就是買櫝還珠的笑話了。

      思考五:豬、雞和鸚鵡的故事

      加入一個團隊時,要弄清楚自己在團隊中投入的級別是什么,別人的期望值是什么。不要拿著賣白菜的錢,操那賣白粉的心——太不值得。

      這句話,其實是大實話,也是筆者認為很多同齡人始終沒想明白的一件事。

      實際上某種程度,團隊成員和團隊的關系,與軟件產品和甲方的關系,還是頗為類似的——前者是賣家,后者是買家。前者買賣的是生產力(以及潛在的價值),后者買賣的是產品本身。本質上,都不過是供求關系而已。

      正如上文中關于bug的論述

      人家要一個蘋果,你給人家拉來一車梨,縱使你說這梨子如何如何好吃我們如何如何辛苦,可是你就是沒給人家需要的東西,那就是扯淡。

      沒錯,如果你提供的東西,其實并不是人家所需要的,那么你對于人家而言的價值就是零。如果你甚至還認為自己勞苦功高,認為人家有義務把你當大爺一樣的供著,那就不僅是沒價值,還會惹人生厭了。

      這些話,看上去很政治不正確。實際上,每一個真正當過技術團隊的leader,辦過實事,招過兵買過馬的leader,都會明白這句話的含義。(筆者曾經招過一些“學霸”進自己的小團隊,然而后來發現這人考試能力是不差,可是給團隊幾乎帶不來什么效益,甚至可以說干啥啥不行。不僅如此,還自視甚高,認為是我們團隊對不起他。這樣的人,用上面的話說,他們對于應試教育而言,是完美的。但是他們對于技術團隊而言,那真的就是除了BUG一無所有了。

      其實這些車轱轆話說來說去,根本矛盾還是供求關系。筆者認為,這個問題也是軟件工程,甚至是整個產業界,的根本問題之一。

      顯然,從團隊成員角度,確實是應該好好掂量對方對自己的期望的:

      • 如果對方對你期望很高,你卻實際上根本不可能辦到,那么即便人家給你開價再高,你也最好走為上策,這是做人最基本的素質。
      • 如果對方對你期望很低,而你實際上可以創造比這個高的價值的話,那么筆者認為:
        • 你可以想辦法讓leader(或者甲方)認同你的價值,然后一起創造更大的價值
        • 如果上一條行不通,那么根據筆者的經驗,你*給他們想要的就好了(筆者之前就遇到過難以溝通的需求甲方)
        • 當然,如果實在不爽的話,也可以選擇跳槽。既然沒機會兼濟天下,那么獨善其身也可以作為次級的選擇。

      從團隊的角度,那么該做的是這樣的:

      • 盡力去觀察團隊成員,和他們多溝通,了解他們切實的需求,然后,盡量給他們想要的(這很重要,供求關系,實際上也應該是雙方面的,各取所需的合作關系才有穩定的可能
      • 如果溝通了,發現這樣的人真的沒有價值的話(當然也可能只是對我們團隊沒用),那么也沒必要強留,看著辦即可(當然,條件允許的話也可以先留著,畢竟多條人脈總有用得著的時候)

      以上,就是筆者對團隊內供求關系的理解。

      軟件的起源

      • 化學家和統計學家約翰·圖基(John W. Tukey)在1958年撰寫一篇科學文章時,首次使用“軟件”這一術語。據報道,他早在1953年就已經提出這個詞,用來標記計算機程序(即“軟件)與使用這些程序的計算機(或“硬件”)之間的區別。軟件的概念被提出
      • 軟件工程的最初概念,是1968年Margaret Hamilton在阿波羅計劃期間提出來的。軟件,開始和工程接軌
      • 1968年NATO會議上首次提出“軟件工程”(Software Engineering)的概念,提出把軟件開發從“藝術”和“個體行為”向“工程”和“群體協同工作”轉化。其基本思想是應用計算機科學理論和技術以及工程管理原則和方法,按照預算和進度,實現滿用戶要求的軟件產品的定義、開發、發布和維護的工程。從此也誕生了一門新的學科——軟件工程。軟件工程這門學科算是正式誕生了。

      冷知識、趣聞

      世界上第一個BUG

      1945年9月,美國海軍編程員、編譯器的發明者格蕾斯·哈珀正帶著他的小組構造一個叫“馬克二型”的計算機。這個計算機使用了大量的繼電器, 一種電子機械裝置。雖然已進入9月,但天氣依然炎熱,房間里沒有空調, 所有窗戶都敞開散熱。為了早日將“馬克二型”構造完成,格蕾斯·哈珀帶著小組成員夜以繼日的工作。

      所謂好事多磨,在9月9日下午三點,電視劇情節般的意外如期而至。突然,“馬克二型”死機了,而技術人員嘗試了許多方法,最后才定位到第70號繼電器出錯。要知道,“馬克二型”用了1萬7千多個繼電器。

      既然找到是70號繼電器出錯了,那么接下來的事情也就好辦了。格蕾斯·哈珀仔細觀察這個出錯的繼電器,然后發現一只被繼電器打死了的飛蛾躺在中間。于是格蕾斯·哈珀小心的用鑷子將飛蛾夾出來,用透明膠布將飛蛾貼到“事件記錄本”中,并注明“第一個發現Bug的實例”。

      沒錯,世界上第一個BUG,還真就是一直蟲子。

      千年蟲問題與2038危機

      千年蟲問題(摘自百度百科):

      計算機2000年問題,又叫做“千年蟲”、“電腦千禧年千年蟲問題”或“千年危機”。縮寫為“Y2K”。是指在某些使用了計算機程序的智能系統(包括計算機系統、自動控制芯片等)中,由于其中的年份只使用兩位十進制數來表示,因此當系統進行(或涉及到)跨世紀的日期處理運 算時(如多個日期之間的計算或比較等),就會出現錯誤的結果,進而引發各種各樣的系統功 能紊亂甚至崩潰。因此從根本上說千年蟲是一種程序處理日期上的bug(計算機程序故障),而非病毒。

      2038危機(摘自百度百科):

      也許大家都已經知道計算機的2000年問題是什么概念,但是什么時候又冒出來一個2038年問題的呢?

      用C語言編制的程序不會碰到2000年問題,但是會有2038年問題。這是因為,大多數C語言程序都使用到一個叫做“標準時間庫”的程序庫,這個時間庫用一個標準的4字節也就是32位的形式來儲存時間信息。

      當初設計的時候,這個4字節的時間格式把1970年1月1日凌晨0時0分0秒(這個時間名叫 the Unix Epoch)作為時間起點,這時的時間值為0。以后所有的時間都是從這個時間開始一秒一秒累積得來的。

      比方說如果時間已經累積到了919642718這個數值,就是說這時距離 the Unix Epoch已經過去了919642718秒,換算一下就應該是1999年2月21日16時18分38秒。

      這樣計算時間的好處在于,把任意兩個時間值相減之后,就可以很迅速地得到這兩個時間之間相差的秒數,然后你可以利用別的程序把它換算成明白易懂的年月日時分秒的形式。

      要是你曾經讀過一點兒關于計算機方面的書,你就會知道一個4字節也就是32位的存儲空間的最大值是2147483647,請注意!2038年問題的關鍵也就在這里———當時間一秒一秒地跳完2147483647那驚心動魄的最后一秒后,你猜怎么樣?

      答案是,它就會轉為負數也就是說時間無效。那一刻的準確的時間為2038年1月19日星期二凌晨03:14:07,之后所有用到這種“標準時間庫”的C語言程序都會碰到時間計算上的麻煩。

      這就是2038年問題。

      其實,這類的問題還有很多:

      • 曾經,現代計算機之父馮諾依曼,表示在計算機上編寫程序是沒有意義的事情,應當花時間在硬件上。然后,軟件時代就到來了。
      • 曾經,比爾蓋茨表示,64KB內存足以應對世界上一切的程序需求。然后,2000年前后的內存都是上百MB的級別
      • 曾經,人們認為,兩位十進制數表示年份,肯定是夠的。然后,2000年如期而至
      • 曾經,人們也以為,timestamp弄個C語言的int32類型,就鐵定夠用了。然后,2038年也不遠了。
      • 曾經,人們也認為,MD5是永久堅不可催的。然后,現在的MD5在存儲海量數據的撞庫面前根本不堪一擊,用MD5加密的網站密碼,已經屬于可以輕松破解的類型了。

      于是乎,在歷史的進程下,之后人們還會面對哪些曾經呢?讓我們拭目以待吧。

      項目管理軟件

      軟件 優點 缺點
      git 1、功能齊全
      2、支持各種復雜情況的代碼管理
      3、與現代開發中的團隊協作相性優秀
      4、主流版本控制,各大網站支持豐富
      1、原生git為純命令行,對新手不算太友好
      svn 1、圖形界面
      2、與windows相性良好
      1、圖形界面(沒錯,這也是缺點)
      2、功能面不如git,沒有git一樣高的可玩性
      3、整體生態遠遠不如git
      Github 1、開源代碼多,群眾基礎強大
      2、操作簡單,即上即用
      1、(天朝限定)速度慢
      2、私有倉庫是收費的
      BitBucket 1、私有倉庫無限制
      2、功能豐富,專為團隊開發設計
      1、(天朝限定)速度慢
      2、沒有太多開源代碼(至少遠遠比不上github)
      3、代碼閉源
      Gitlab 1、代碼開源,自行安裝,自行配置
      2、完善的團隊協作支持
      3、(天朝限定)速度快
      4、完美的ci支持
      1、私有的gitlab基本不存在開源代碼
      2、免費版只提供部分功能
      posted @ 2019-03-04 23:05  HansBug  閱讀(2426)  評論(6)    收藏  舉報
      主站蜘蛛池模板: 日本阿v片在线播放免费| 少妇高潮喷水惨叫久久久久电影| 久久国产成人av蜜臀| 国产精品无码a∨麻豆| 国产一级av在线播放| 日韩 一区二区在线观看| 免费99视频| 人妻少妇精品系列一区二区| 香蕉久久久久久久av网站| 国产黄色一区二区三区四区| 最近中文字幕日韩有码| 亚洲AV无码不卡在线播放| 99精品国产兔费观看久久99| 国产精品播放一区二区三区| 四房播色综合久久婷婷| 亚洲成人精品一区二区中| 在线a亚洲老鸭窝天堂| 聊城市| 亚洲精品久久久蜜桃| 国产高潮刺激叫喊视频| 中国老太婆video| 亚洲精品美女久久久久9999| 亚洲AV午夜成人无码电影| av小次郎网站| 亚洲人成色99999在线观看| 两个人的视频www免费| 起碰免费公开97在线视频| 久久夜色精品国产噜噜亚洲sv| 香蕉影院在线观看| 精品人妻一区二区三区蜜臀| 国产一区二区三区小说| 四虎库影成人在线播放| 99久久精品午夜一区二区| 日韩精品射精管理在线观看| 成人久久精品国产亚洲av| 狠狠亚洲色一日本高清色| 99久久激情国产精品| 久久亚洲精品天天综合网| 97精品尹人久久大香线蕉| 少妇高潮激情一区二区三| 免费午夜无码片在线观看影院|