編程架構(gòu)世界:青苗訓(xùn)練營第一天日報

今天的項目主要有3個:

1.極速60秒
2.海難逃生
3.電影《地球上的星星》

極速60秒

規(guī)則: 有30張圖片,他們對應(yīng)1到30的數(shù)字掀潮,在60秒內(nèi)锭弊,按順序把他們分別找出來交給教練填硕。

總結(jié): 理清需求之后,我對這個問題進(jìn)行了抽象炼吴,這其實是一個集合(圖片)到另一個集合的映射的過程(數(shù)字)本鸣,輸入是30個無序的圖片,輸出是按照對應(yīng)數(shù)字的升序排好的30個圖片硅蹦。

我們開始討論了兩種算法(方案)荣德。

  • 一種是 記的過程和猜的過程分開,在60秒內(nèi)只記圖片童芹,回來后把每個人記住的圖片取并集涮瞻,之后再猜(尋找映射關(guān)系)。
  • 另一種是按順序一個一個的記 + 猜假褪,找到一個再進(jìn)行下一個署咽。

理論上兩種方案都是可以完成需求的。 具體執(zhí)行的時候發(fā)現(xiàn)第一種方案,記這個過程很難宁否,因為沒有一種標(biāo)準(zhǔn)的語言來描述圖片內(nèi)容窒升,沒法完成記的過程,自然這種方案就不可行了慕匠。

最終我們隊采用的是第二種方案饱须,別的隊也是同樣的方案。

我們的成績是第二名台谊,復(fù)盤的時候發(fā)現(xiàn)獲勝的一隊除了上述方案外還有兩個優(yōu)化策略蓉媳,一個是每個人劃分一個區(qū)域來指,另一個我忘記了锅铅。

在方案相同的情況下酪呻,一隊的兩個優(yōu)化策略使得一隊更快完成了挑戰(zhàn),剩下我們兩個隊比拼因為方案和優(yōu)化策略都一樣盐须,更多的是人的比拼号杠。

這里的優(yōu)化策略帶來的性能提升,讓我想起了react vdom的diff 算法也是因為加了3條優(yōu)化策略而使得算法復(fù)雜度從o(n^3)降到了o(n)丰歌,實現(xiàn)了性能的質(zhì)的提升。

當(dāng)然除了這些抽象層次的區(qū)別之外屉凯,具體到這個問題立帖,團(tuán)隊的分工協(xié)作溝通等都會涉及到。

海難逃生

規(guī)則: 4米高的甲板悠砚,通過協(xié)作讓所有人都過去晓勇。

總結(jié): 針對這個需求,設(shè)計的方案是0~2層人梯 + 上面人拉 的方式灌旧,結(jié)合蹬 + 拉的力量绑咱。確定好了方案之后,具體分工的時候枢泰,會把第一層和第二層人梯交給男生做描融,女生和重量大的優(yōu)先上。當(dāng)?shù)搅俗詈笠粋€人的時候衡蚂,沒有人梯可蹬窿克,只能靠拉的力量,這時候會通過一個人倒掛下來拉的方式毛甲,來把最后一個人拉上去年叮。

整體邏輯用代碼描述如下:

function escapeAll(people) {
  const  PEOPLE_TATAL_COUNT = people.length;
  function escape() {
      if (people.length === PEOPLE_TOTAL_COUNT) {
            通過人梯上去(people.pop());
            escape(people, ++num);
      } else if (num === 1) {
           通過倒掛拉上去(people.pop());
      } else {
           通過人梯和拉上去(people.pop());
      }
   }
   return escape();
}

const people = ['翟旭光', '沈東', '王四光'];// 共35人
escapeAll(people);

電影《地球上的星星》

規(guī)則: 看一部電影,看完之后畫出邏輯主線玻募。
總結(jié): 分析之后的邏輯如下只损。

     const 尹夏 = {
           status: '不會讀寫',
           做考試題() {
                 this.status.......
            }
            畫畫() {
                 this.status.......
            }
     }
     尹夏.做考試題()
      尹夏.畫畫();
      尼可.影響學(xué)生(尹夏, '會讀寫')
      尹夏.做考試題()
      尹夏.畫畫();
     

受尼可老師影響,解決了自己的問題七咧,充分發(fā)揮自己的天分跃惫,變化巨大叮叹。

復(fù)盤與提升

總結(jié)上面的經(jīng)驗和教訓(xùn),主要由以下幾條:

  1. 抽象:編程是對現(xiàn)實世界的抽象辈挂,現(xiàn)實世界的問題都能通過抽象和建模來映射到代碼的世界衬横,然后使用編程相關(guān)的理論來解釋。抽象成編程問題或者數(shù)學(xué)問題之后终蒂,很多理論和優(yōu)化方式都可以直接的套用蜂林。人的因素降到最小。

  2. 拆分與組合:完成一個功能需要組合很多的東西拇泣,需要劃分每一部分的職責(zé)噪叙,就像公司部門和崗位的職責(zé)劃分一樣,需要每個人的配合才能運轉(zhuǎn)霉翔,有的崗位職責(zé)更重要一些睁蕾,就像人梯的那兩層。但是無論職責(zé)的重要程度怎樣都應(yīng)該是可替換的债朵,不能強(qiáng)耦合子眶。不然一個人出了問題,整體都沒法往下進(jìn)行序芦。

3.通信:為了整體結(jié)構(gòu)的松散臭杰,會做很多的拆分,包括部門谚中、崗位等渴杆,拆分之后就會涉及到通信,通信就有成本的問題宪塔,就像極速60秒里需要把所有的信息匯總到一個人那里來集中處理磁奖,就像海難逃生需要一個指揮來統(tǒng)籌全局,和公司架構(gòu)同理某筐,分層次的管理比搭,溝通的方向更多的是上下級,這樣信息流動會清晰高效很多南誊。

  1. 追求全局最優(yōu):追求全局最優(yōu)而不是局部最優(yōu)敢辩,海難逃生的時候,確定了人梯 + 拉 的策略之后弟疆,安排逃生的順序也很重要戚长,不能簡單的先讓所有女生過去,也不能簡單的讓體重大的先過去怠苔,要結(jié)合人梯的人選以及上面拉的人選等同廉,全局的綜合考慮,類似一個動態(tài)規(guī)劃求全局最優(yōu)解的過程。正如有個老師分享的“通盤無妙手”迫肖,我們應(yīng)該從整體上去做優(yōu)化調(diào)整锅劝,去追求全局最優(yōu),而不是局部的最優(yōu)蟆湖。

5.狀態(tài):編程于我故爵,就像畫畫之于尹夏,他改變了我的狀態(tài)隅津,已經(jīng)深深潛入我的思想和潛意識诬垂,影響著我對世界的看法,緊緊耦合伦仍,不可分離结窘。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市充蓝,隨后出現(xiàn)的幾起案子隧枫,更是在濱河造成了極大的恐慌,老刑警劉巖谓苟,帶你破解...
    沈念sama閱讀 210,835評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件官脓,死亡現(xiàn)場離奇詭異,居然都是意外死亡涝焙,警方通過查閱死者的電腦和手機(jī)确买,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纱皆,“玉大人,你說我怎么就攤上這事芭商∨刹荩” “怎么了?”我有些...
    開封第一講書人閱讀 156,481評論 0 345
  • 文/不壞的土叔 我叫張陵铛楣,是天一觀的道長近迁。 經(jīng)常有香客問我,道長簸州,這世上最難降的妖魔是什么鉴竭? 我笑而不...
    開封第一講書人閱讀 56,303評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮岸浑,結(jié)果婚禮上搏存,老公的妹妹穿的比我還像新娘。我一直安慰自己矢洲,他們只是感情好璧眠,可當(dāng)我...
    茶點故事閱讀 65,375評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般责静。 火紅的嫁衣襯著肌膚如雪袁滥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,729評論 1 289
  • 那天灾螃,我揣著相機(jī)與錄音题翻,去河邊找鬼。 笑死腰鬼,一個胖子當(dāng)著我的面吹牛嵌赠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播垃喊,決...
    沈念sama閱讀 38,877評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼猾普,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了本谜?” 一聲冷哼從身側(cè)響起初家,我...
    開封第一講書人閱讀 37,633評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乌助,沒想到半個月后溜在,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡他托,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,443評論 2 326
  • 正文 我和宋清朗相戀三年掖肋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赏参。...
    茶點故事閱讀 38,563評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡志笼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出把篓,到底是詐尸還是另有隱情纫溃,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評論 4 328
  • 正文 年R本政府宣布韧掩,位于F島的核電站紊浩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏疗锐。R本人自食惡果不足惜坊谁,卻給世界環(huán)境...
    茶點故事閱讀 39,827評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望滑臊。 院中可真熱鬧口芍,春花似錦、人聲如沸雇卷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至膘融,卻和暖如春芙粱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背氧映。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評論 1 264
  • 我被黑心中介騙來泰國打工春畔, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岛都。 一個月前我還...
    沈念sama閱讀 46,240評論 2 360
  • 正文 我出身青樓律姨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親臼疫。 傳聞我的和親對象是個殘疾皇子择份,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,435評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,723評論 25 707
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,905評論 2 89
  • 第一次去宜家是聽同事介紹去的,那會我正好要買做蛋糕的盆烫堤。買完打蛋用的盆又順便買了點其它小東西荣赶。一路是拿著這些東西叮...
    北漂那些事閱讀 433評論 0 0
  • 2009年八月份,博耘的百天相片鸽斟,是不是很可愛*^o^* 2010年5月8日博耘一周歲的相片拔创,看起來萌萌噠 201...
    博耘閱讀 330評論 0 0
  • 當(dāng)我再次從睡夢中醒來時,已經(jīng)是下午兩點了富蓄。我皺緊了眉頭剩燥,用手指強(qiáng)勁的按了按太陽穴。睡覺睡過了頭就會留下短暫的后遺癥...
    醉春鵝黃閱讀 103評論 0 0