spring統(tǒng)一異常怎么處理 開發(fā)一個(gè)app有多難?
開發(fā)一個(gè)app有多難?先說(shuō)一些,我是前端工程師,所以我變更土地性質(zhì)app使用的是H5的東西,又不是原生安卓和IOS,當(dāng)然也有個(gè)很火一般的Flutter,雖說(shuō)沒幾乎投入運(yùn)行。因?yàn)槲乙韵抡f(shuō)的只是對(duì)前端的想
開發(fā)一個(gè)app有多難?
先說(shuō)一些,我是前端工程師,所以我變更土地性質(zhì)app使用的是H5的東西,又不是原生安卓和IOS,當(dāng)然也有個(gè)很火一般的Flutter,雖說(shuō)沒幾乎投入運(yùn)行。因?yàn)槲乙韵抡f(shuō)的只是對(duì)前端的想開發(fā)app的朋友。其實(shí)我也剛旗下了幾個(gè),還有一個(gè)很多經(jīng)驗(yàn)不足,如果寫的有問題只希望不當(dāng)之處。
不過(guò)我做開發(fā)上次五年多的時(shí)間,說(shuō)實(shí)話我感覺如果不是只是因?yàn)殚_發(fā)完畢市面上也有的東西,應(yīng)該要比很難的,現(xiàn)在有很多能成熟的框架,有很比較不錯(cuò)的api借鑒吸收,網(wǎng)上也有很多資源,有些時(shí)候都可以不中搜索到。你遇到問題之前沒準(zhǔn)有很多前輩巳經(jīng)遇到了過(guò),好好上官方論壇,跟大家交流學(xué)習(xí)。我那種感覺完全困難的東西是你可不可以做出去,并非說(shuō)遇到個(gè)問題想都不打算就找人問,這樣的態(tài)度我不我推薦。就算是你的問題很簡(jiǎn)單的,到最后發(fā)現(xiàn)到原來(lái)是只是兩行代碼的事,只不過(guò)這個(gè)結(jié)果也源自你之前的不時(shí)再問,知識(shí)能學(xué)了才是自己的。
跟大家很簡(jiǎn)單分享下我的經(jīng)歷。最后一個(gè)app是是用mui開發(fā)物流手持,很簡(jiǎn)單說(shuō)就是接單后完單可以上傳信息,查看歷史單等等。公司就我一個(gè)前端,做項(xiàng)目之前mui我也才看了一周左右。確實(shí)只是是html頁(yè)面而己,但是也有很多動(dòng)態(tài)鏈接庫(kù)原生的東西。記得那時(shí)每天晚上都工作的話到很晚,簡(jiǎn)單的登陸賬號(hào)列表總是顯示頁(yè)面,這些那就好寫的。晚上下班之后我就呆在公司查找資料咋全局函數(shù)系統(tǒng)攝像頭,咋不使用二維碼,怎末動(dòng)態(tài)鏈接庫(kù)申請(qǐng)支付收款。也很激動(dòng),自己從頭學(xué)習(xí)做沒人帶。后來(lái)我們看了官方獨(dú)立顯卡的html5,很多都是樣例,當(dāng)然也會(huì)生克制化自己的功能稍改。也參加了幾個(gè)群,可是說(shuō)有很多扯淡,可是也有很多人在研究和探討技術(shù)。所以我資源很多,自己主動(dòng)地去找。聽說(shuō)后來(lái)在開發(fā)完畢的時(shí)候,開發(fā)效率就很快了。
當(dāng)時(shí)有個(gè)太麻煩的事是內(nèi)部函數(shù)地圖。我是pc和app而做的,pc送貨,app接到訂單,用的也是高德地圖jsapi。但到手機(jī)上就不管用了,我也究竟我想知道為什么。也找了很多東西,但穿越小說(shuō)合集出的基本上是地圖不不顯示。問了有個(gè)人的顯示,再細(xì)問他呢,他就說(shuō)我又是剛弄,我的就能進(jìn)去,人家很厲害,我能說(shuō)什么,自己瞎嚷嚷唄。我非常清晰地記的弄了三周,別的布局什么寫的也一下子,所以你經(jīng)常弄地圖了。最后真的是瞎貓?jiān)庥鏊篮淖恿?,我真的不懂為啥有沒跟軟件版本應(yīng)該什么有關(guān)系。我沒用啊sdk只不過(guò)引了百度的地圖sdk,jsapi不使用的高德的,總是顯示順利。當(dāng)然很多人會(huì)疑問,你們別糾結(jié)這個(gè),有用的是效果要先出去,我問出來(lái)可能會(huì)非常容易,也很可能是運(yùn)氣,只不過(guò)這一些全是建立起在前期自己的努力琢磨,查閱資料。原來(lái)是是看點(diǎn)書明白了稻盛和夫,現(xiàn)在是實(shí)踐中再理解了稻盛和夫先生。
現(xiàn)在我在使用mui團(tuán)隊(duì)開發(fā)的另一個(gè)框架uniapp開發(fā)一個(gè)簡(jiǎn)易版的頭條。都是文章,專家,訂閱,評(píng)論等等內(nèi)容。就開始時(shí)候自己慢慢看文檔,看官方例子,殺他去寫就,潛近了看看flex布局。連網(wǎng)線的分裝,優(yōu)化系統(tǒng)promise請(qǐng)求。其實(shí)也遇上很多坑,像軟鍵盤自動(dòng)彈出對(duì)布局的拉扯,這里面沒有window,document這些瀏覽器的對(duì)象了。像富文本解析,還要對(duì)解析出的文本字體縮放大小,圖片點(diǎn)擊,復(fù)制粘貼。uniapp基本是實(shí)現(xiàn)小程序的api語(yǔ)法,因此自己也去搞去找,上個(gè)月忙了整月,現(xiàn)在基本都也可以了。不會(huì)怕走歪路,走多了就明白怎摸認(rèn)真的思考了,怎莫能夠解決問題了。
我只不過(guò)個(gè)小開發(fā),始終在自學(xué),在發(fā)現(xiàn)自己。如果能跟大家齊一進(jìn)步。如果有想知道一點(diǎn)得東西可以不給我留言,我也期望去多多分享自己的經(jīng)歷。百度網(wǎng)盤也有些教程,有需要的小伙伴可以不找我,不需關(guān)注。啊,謝謝閱讀!
如何優(yōu)雅的使用和理解線程池?你怎么看?
要把java線程池明白好而且用好,是需要把并發(fā)編程的基礎(chǔ)知識(shí)掌握好,因此把線程池的所有API的官方文檔一定要認(rèn)真想研究一遍。這里把優(yōu)雅的不使用線程池的要點(diǎn)學(xué)習(xí)總結(jié)::
1.弄知道你要用線程池你想做什么。比如你的目的是把歌詞同步API改造為異步,還是想并發(fā)只是請(qǐng)求多個(gè)外部服務(wù),應(yīng)該降低線程的創(chuàng)建家族和完全銷毀以全面處理用戶請(qǐng)求等。
2.參照你的實(shí)際項(xiàng)目需求,配置好線程池的參數(shù),具體除開corePoolSize,maximumPoolSize,阻塞住隊(duì)列,keepAliveTime,線程工廠和析出策略(或者說(shuō)是RejectedExecutionHandler)。
3.據(jù)你的應(yīng)用特點(diǎn)重新部署線程池。有的后臺(tái)服務(wù)應(yīng)用比較適合在啟動(dòng)時(shí)的時(shí)候每個(gè)月創(chuàng)建家族好線程池,在應(yīng)用的執(zhí)行過(guò)程繼續(xù)直接修改線程池。有的時(shí)候,應(yīng)用適合我預(yù)備創(chuàng)建一個(gè)線程池但是把任務(wù)再提交進(jìn)去,使用以后之后立即全部銷毀。
4.當(dāng)你判斷不再不使用線程池之后,肯定調(diào)用shutdown()以優(yōu)雅的關(guān)了線程池。shutdown可以保證之前早就重新提交到線程池中的任務(wù)絕對(duì)不會(huì)被丟棄,只要了數(shù)據(jù)安全。
5.當(dāng)全局函數(shù)了shutdown之后,線程池此時(shí)早很有可能在執(zhí)行任務(wù),只不過(guò)關(guān)閉了提交任務(wù)的入口。如果要耐心的等待線程池完全終止,需要內(nèi)部函數(shù)awaitTerminate以等待線程池把隊(duì)列中的任務(wù)全部全面處理成功因此清理成功,后再才趕往。awaitTerminate順利直接返回了,線程池算是真的需要清理徹底干凈了。
系統(tǒng)的總結(jié)一下,線程池聽從創(chuàng)建戰(zhàn)隊(duì)(構(gòu)造方法)、并提交任務(wù)(execute)、定時(shí)清理(shutdown),再等待定時(shí)清理結(jié)束(awaitTerminate)的順序動(dòng)態(tài)創(chuàng)建API,那樣建議使用線程池才算優(yōu)雅。要想用好java線程池,最大化系統(tǒng)優(yōu)化程序的性能也可以可以參考我公眾號(hào)里的分析文章。