沒有功能需求設計文檔?對不起,拒絕開發!
在很(hen)多軟件(jian)公司,特別是(shi)一(yi)些創(chuang)業型(xing)的(de)(de)團隊中,對于這樣的(de)(de)情景可能大家都很(hen)熟悉:項(xiang)目經(jing)理(li)或者(zhe)產品(pin)經(jing)理(li)(產品(pin)狗(gou))口頭或者(zhe)簡單(dan)記錄(lu)一(yi)下軟件(jian)產品(pin)的(de)(de)大致要做的(de)(de)功能,直(zhi)接就讓研發團隊的(de)(de)兄(xiong)弟(程序(xu)猿)去狂(kuang)擼代碼。然后(hou)他就去喝茶撩妹或者(zhe)回家陪老(lao)婆了... 這種擼起袖子(zi)就開干的(de)(de)方式,看似(si)簡單(dan)高效(xiao),便于直(zhi)接溝通,能夠快速(su)迭 ...
打破牢籠,展望更高層次的世界
筆(bi)者袁永福是一個(ge)十多年的老程序猿出(chu)來創業(ye)多年,期間(jian)經歷許多曲折(zhe)和磨難(nan),成功的在(zai)炮火連天的商業(ye)戰場上活了下來,并持續發展中。其中不少體會(hui),于是提出(chu)本(ben)文的主題(ti)--打(da)破牢籠,展望更(geng)高(gao)層次的世界。 ...
從SHAttered事件談安全
大新(xin)聞? 在剛剛過去的(de)(de)2017年(nian)2月23日,Cryptology Group at Centrum Wiskunde & Informatica (CWI)和Google的(de)(de)研究(jiu)人員公開了2個PDF文件,我(wo)也第一時間下載(zai)并按提示檢查了SHA 1的(de)(de)校驗值。文件內(nei)容和SHA1的(de)(de)結果如圖1所示。 ↑ 圖1 ...
一個由進程內存布局異常引起的問題
前段時間業務反映某類服務器上更新了(le) bash 之后,ssh 連上去偶發登陸失(shi)敗,客戶端吐出錯(cuo)誤信(xin)(xin)息(xi)如下所(suo)示: 圖 0 該版本 bash 為部門這(zhe)邊所(suo)定制,但是(shi)實現上與原(yuan)生版并沒有不同,那么這(zhe)些錯(cuo)誤從哪里來(lai)? 是(shi) bash 的(de)(de)鍋(guo)嗎 從上面(mian)的(de)(de)錯(cuo)誤信(xin)(xin)息(xi)可以(yi)猜測,異常是(shi) bash 在(zai)啟動過程中分配(pei)內存失(shi)敗所(suo) ...
一次生產事故的優化經歷
在(zai)(zai)一次正常的(de)(de)(de)活(huo)動(dong)促銷之后,客服開(kai)(kai)(kai)始陸(lu)續(xu)反饋有用(yong)戶(hu)反應(ying)在(zai)(zai)搶(qiang)(qiang)標(biao)的(de)(de)(de)時(shi)候(hou)打不開(kai)(kai)(kai)網(wang)頁(ye)或(huo)者APP,在(zai)(zai)打開(kai)(kai)(kai)的(de)(de)(de)時(shi)候(hou)標(biao)的(de)(de)(de)就已經被(bei)搶(qiang)(qiang)光了,剛開(kai)(kai)(kai)始沒有特別的(de)(de)(de)上(shang)心,覺得搶(qiang)(qiang)標(biao)不就是這樣嗎(ma)(ma),搶(qiang)(qiang)小米手(shou)機(ji)的(de)(de)(de)時(shi)候(hou)也不就這樣嗎(ma)(ma)?隨著活(huo)動(dong)繼續(xu)推進,有更多的(de)(de)(de)用(yong)戶(hu)強(qiang)烈抗議(yi),用(yong)戶(hu)領(ling)了加息卷或(huo)者抵現(xian)卷之后搶(qiang)(qiang)不上(shang)標(biao)的(de)(de)(de),認為是平(ping)臺作假(jia)故意不讓使用(yong)以(yi) ...
奶爸程序員的“育兒”心得
自(zi)我介紹一下(xia),本人(ren)以前(qian)是(shi).net程序員,去年下(xia)半(ban)年負責把項目(mu)從(cong).net轉(zhuan)到java,并且有跨(kua)機房(fang)遷(qian)移,億級訪問(wen)量,app服務端項目(mu)。 自(zi)我吐槽一下(xia),工作了8年了,沒(mei)(mei)有成(cheng)為架構師(shi),也(ye)沒(mei)(mei)有進入管理層,沒(mei)(mei)有成(cheng)為技術大師(shi),也(ye)沒(mei)(mei)能成(cheng)為分享大師(shi)。一直在做業務,并在這條(tiao)路上越走越遠。有的時(shi)候(hou)覺得很尷尬,但又有的時(shi) ...
我的編程經歷與我所熱愛的游戲服務端開發
嗨,大家好,我(wo)(wo)(wo)(wo)是風雅,有(you)一段(duan)時(shi)間沒寫(xie)博(bo)(bo)客(ke)了(le)(le),其實我(wo)(wo)(wo)(wo)在持(chi)續進步(bu)中,每(mei)天都(dou)(dou)成長(chang)很快,這段(duan)時(shi)間有(you)很多次想(xiang)(xiang)寫(xie)博(bo)(bo)客(ke)的(de)想(xiang)(xiang)法,但都(dou)(dou)因為當時(shi)的(de)狀態(tai)更想(xiang)(xiang)敲一些(xie)代碼或是看一些(xie)書而沒有(you)立馬(ma)去寫(xie)博(bo)(bo)客(ke)總結,后來再想(xiang)(xiang)去寫(xie)時(shi),靈感過(guo)了(le)(le),也(ye)寫(xie)不(bu)出什么東西了(le)(le)。所以這次,借著最近(jin)的(de)一些(xie)想(xiang)(xiang)法和(he)成長(chang),我(wo)(wo)(wo)(wo)知(zhi)道我(wo)(wo)(wo)(wo)必(bi)須得留(liu)下點(dian)什么了(le)(le),感謝我(wo)(wo)(wo)(wo)身邊 ...
從零到百億互聯網金融架構發展史
回想起(qi)從(cong)公(gong)司(si)成立敲出(chu)的第(di)一(yi)(yi)行代碼算(suan)(suan)起(qi)到(dao)現在也快三年了,平臺的技(ji)(ji)術架構,技(ji)(ji)術體(ti)系(xi)也算(suan)(suan)是經歷了四次比較重大的升(sheng)級轉化(目(mu)前(qian)第(di)四代架構體(ti)系(xi)正在進行中),臨近年底也想抽(chou)出(chu)時間來回顧一(yi)(yi)下,一(yi)(yi)個小公(gong)司(si)從(cong)最開始(shi)的零交易到(dao)現在交易量超過百億背后的技(ji)(ji)術變遷。 總體(ti)介紹 在互聯網金融(rong)行業一(yi)(yi)百多億其實也算(suan)(suan)不上(shang)大平臺,也就 ...
app開發:模擬服務器數據接口 - MockApi
為了方便app開(kai)發過程(cheng)中(zhong),不受服務器(qi)接(jie)口的(de)(de)限制,便于客戶端(duan)功能(neng)的(de)(de)快速(su)測試(shi),可以在客戶端(duan)實現(xian)一(yi)個模(mo)擬服務器(qi)數據(ju)接(jie)口的(de)(de)MockApi模(mo)塊。本篇文章就嘗試(shi)為使用gradle的(de)(de)android項目設(she)計實現(xian)MockApi。 ...
記錄服務上線一年來的點點滴滴
2015年(nian)12月,也就是(shi)在(zai)一年(nian)前(qian),開發(fa)了半年(nian)的云(yun)存儲(chu)服務上(shang)線。這(zhe)對于付出了半年(nian)努力(li)的我(wo)們來說,是(shi)一件(jian)(jian)鼓(gu)舞人心的事件(jian)(jian)。因為這(zhe)個(ge)服務在(zai)我(wo)們手上(shang)經歷了從0到(dao)1的過程。這(zhe)是(shi)我(wo)們自己的一小步,卻是(shi)整個(ge)云(yun)存儲(chu)服務的一大步。 我(wo)們開發(fa)的是(shi)一款視(shi)(shi)頻監(jian)控類(lei)的軟(ruan)件(jian)(jian),分(fen)為視(shi)(shi)頻采集(ji)端跟觀看端。采集(ji)端可以(yi)是(shi)專業攝像頭,手機, ...
架構隨聊
閱讀目錄 架(jia)(jia)構(gou)的(de)(de)定義(yi) 如(ru)何開(kai)始設計(ji)一(yi)個(ge)(ge)架(jia)(jia)構(gou) 一(yi)個(ge)(ge)好(hao)架(jia)(jia)構(gou)的(de)(de)特點 做架(jia)(jia)構(gou)中的(de)(de)誤(wu)區 結(jie)語 一(yi)、架(jia)(jia)構(gou)的(de)(de)定義(yi) 所謂(wei)一(yi)千(qian)個(ge)(ge)架(jia)(jia)構(gou)師中有(you)一(yi)千(qian)種“最好(hao)的(de)(de)架(jia)(jia)構(gou)”模式(shi)。 “架(jia)(jia)構(gou)”是我(wo)們這(zhe)行業種一(yi)個(ge)(ge)很(hen)常見的(de)(de)詞(ci),表(biao)明其必然也是經歷(li)了很(hen)長的(de)(de)歲(sui)月打(da)磨所形成的(de)(de)一(yi)個(ge)(ge)詞(ci)。架(jia)(jia)構(gou)的(de)(de)這(zhe)個(ge)(ge)詞(ci)出(chu)現的(de)(de)意義(yi)是什么?為了解決什么問題?只有(you)把這(zhe)2個(ge)(ge)問題 ...
談談敏捷開發
我對(dui)敏(min)捷開(kai)發(fa)是源(yuan)于10多年前看了一(yi)(yi)本關(guan)于迭代(dai)開(kai)發(fa)的(de)(de)書,從而對(dui)迭代(dai)開(kai)發(fa)有(you)了一(yi)(yi)些興趣。從那時(shi)開(kai)始有(you)了迭代(dai)開(kai)發(fa)的(de)(de)概念(nian)。隨著(zhu)項目經驗的(de)(de)增加迭代(dai)的(de)(de)重要性也越發(fa)覺得明顯。隨后進(jin)入了提倡敏(min)捷開(kai)發(fa)的(de)(de)公司(si),被迫式的(de)(de)接觸了許多“敏(min)捷開(kai)發(fa)”,隨著(zhu)項目經歷(li)越來越多,慢(man)慢(man)的(de)(de)就開(kai)始有(you)了更新的(de)(de)認識(shi)和(he)想法。 但(dan)是在接觸敏(min)捷開(kai)發(fa)這(zhe)個 ...
最近幫客戶實施的基于SQL Server AlwaysOn跨機房切換項目
最近幫客(ke)戶實施(shi)的基(ji)于SQL Server AlwaysOn跨機房切換項目 最近一(yi)個(ge)來自重慶(qing)的客(ke)戶找到走起君(jun)(jun),客(ke)戶的業務是(shi)做移(yi)動互(hu)聯網(wang)支(zhi)付(fu),是(shi)微(wei)信支(zhi)付(fu)收單渠道合作(zuo)伙伴,數(shu)據庫里存儲的是(shi)支(zhi)付(fu)流(liu)水(shui)和交易(yi)流(liu)水(shui)。 由于客(ke)戶那邊沒有(you)DBA,所以找到走起君(jun)(jun)商量一(yi)個(ge)數(shu)據庫服務器搬遷(qian)項目。 項目背景 客(ke)戶需要把在(zai)10 ...
單點登錄原理與簡單實現
(2017-09-22更新)GitHub://github.com/sheefee/simple-sso 一、單(dan)系統登錄機制 1、http無狀態(tai)協(xie)議 web應(ying)用(yong)采用(yong)browser/server架(jia)構,http作為通信(xin)協(xie)議。http是無狀態(tai)協(xie)議,瀏覽器的每一次(ci)請求,服務器會獨(du)立(li)處理,不與之(zhi)前 ...
即時通信服務器架構的一些思考
對(dui)于一個即時通信(xin)服(fu)務器(qi)(qi)(qi)(qi)來說,在(zai)用(yong)戶量少的(de)(de)時候,一臺服(fu)務器(qi)(qi)(qi)(qi)就足以提供所有(you)的(de)(de)服(fu)務。而這(zhe)種架構也最簡(jian)單(dan),舉個例子(zi),用(yong)戶A與用(yong)戶B互(hu)為(wei)好(hao)友,A向B發消息,服(fu)務器(qi)(qi)(qi)(qi)接(jie)收(shou)到消息時,解析出(chu)接(jie)收(shou)消息的(de)(de)人,直接(jie)轉發給B即可。可是當用(yong)戶數量越來越多時,一臺服(fu)務器(qi)(qi)(qi)(qi)已經無法所有(you)用(yong)戶的(de)(de)需求,這(zhe)時就要(yao)進行服(fu)務擴容,進行分(fen)布式部署 ...
自定義基于 VLC 的視頻播放器
前(qian)言(蛋疼的(de)(de)背景故事) 前(qian)段(duan)時(shi)間,接了(le)一個(ge)小項目,有(you)個(ge)需(xu)求是(shi)要在系統(tong)待機一段(duan)時(shi)間以后,循環(huan)播(bo)放 MV(類似于(yu) Windows 系統(tong)的(de)(de)屏幕(mu)保護)。 聽(ting)到(dao)這個(ge)需(xu)求,我首先想到(dao)的(de)(de)是(shi) MediaPlayer 和 Flash,因為(wei)這兩個(ge)組件幾(ji)乎(hu)所有(you) Windows 平臺的(de)(de)電腦都會安(an)裝(zhuang)。但客戶說不(bu)能用 Flas ...
使用瀏覽器的計算力,對抗密碼破解
本文前半部分科普 PBKDF 函數的(de)(de)意義(yi),后(hou)半部分探討在前端計算的(de)(de)可行性(xing)。 前言 幾乎(hu)每隔(ge)一(yi)段時間,就會(hui)聽到“XX 網站(zhan)被拖庫(ku)”的(de)(de)新聞(wen)。之后(hou)又會(hui)出(chu)現一(yi)些報道,分析該網站(zhan)使用最多的(de)(de)密碼是什么、有多少(shao)等(deng)等(deng)。 眾所周(zhou)知,密碼在數據庫(ku)中通常(chang)是以 Hash 值存儲的(de)(de),并且還加了鹽(yan)。攻擊者即使知道具體(ti)的(de)(de) Has ...
Vue.js 和 MVVM 的小細節
MVVM 是Model-View-ViewModel 的(de)縮(suo)寫,它(ta)是一種基于前端開發的(de)架構模式,其(qi)核心是提(ti)供對View 和 ViewModel 的(de)雙(shuang)向數(shu)據(ju)綁定(ding),這(zhe)使(shi)得ViewModel 的(de)狀態(tai)改變可以自(zi)動傳(chuan)遞給(gei) View,即所謂的(de)數(shu)據(ju)雙(shuang)向綁定(ding)。 ...
ASP.NET Core 之 Identity 入門(一)
前言 在 ASP.NET Core 中,仍(reng)然沿用(yong)(yong)了 ASP.NET里面的(de)(de) Identity 組件庫,負(fu)責對(dui)用(yong)(yong)戶的(de)(de)身份進行認證,總體(ti)來說的(de)(de)話,沒有MVC 5 里面那(nei)么復雜(za),因(yin)為(wei)在MVC 5里面引入了OWIN的(de)(de)東西,所以(yi)很(hen)多初學者在學習(xi)來很(hen)費(fei)勁,對(dui)于(yu) Identity 都是(shi)一頭霧水,包(bao)括我也是(shi),曾(ceng)經在學 ...
隨談10年的技術生涯和技術成長
這些年,曾高(gao)(gao)調(diao)過(guo),曾低調(diao)過(guo),也不高(gao)(gao)不低過(guo),有(you)(you)人(ren)看我很(hen)(hen)謙虛,有(you)(you)人(ren)看我屌(diao),其(qi)(qi)實,都是看心情(qing),看心情(qing)的(de)(de)。。。我想(xiang)匯總(zong)一(yi)下(xia)我的(de)(de)知識(shi)體(ti)系,身體(ti)又(you)懶的(de)(de)動(dong),只因(yin)大腦感覺要寫(xie)(xie)完(wan)天都要亮好幾回,若不寫(xie)(xie),這隨談又(you)要談什么(me)呢?聽說.NET界的(de)(de)架構師很(hen)(hen)少(shao),其(qi)(qi)實是.NET的(de)(de)技(ji)術總(zong)監或CTO太(tai)少(shao),畢竟(jing)是上(shang)層決(jue)定了下(xia)層的(de)(de)技(ji)術使用... ...
