自從我第一次在張江廣蘭路上吃到了剁椒魚頭後,我就開始念念不忘,但是嘗了上海很多餐館的剁椒魚頭都說是店裡的招牌菜,可是味道都不怎麼樣。非常失望。實在沒想到的是,吃到現在,最好吃的剁椒魚頭竟然是在張江香楠小區那邊的一家小餐館吃到的。因為實在太愛吃,我就想自己做,可是剁椒魚頭畢竟是一道大菜,我也沒有師傅指點,難度可想而知。但是我想了一個辦法,就是一直去那家餐館吃,然後和老闆、老闆娘、還有老闆娘他弟弟(因為他是廚師)搞好關係。終於在我們搬家之前,搞定了剁椒魚頭的做法,哈哈。
從我工作到現在,我也參加了很多項目的代碼設計和編寫工作,也帶過了不少的人員進行代碼的設計和編寫工作。總體上講,一般剛剛在我帶領的團隊工作的人都會經曆一段相當的痛苦的時期,那段時期他將會被我嚴重的教育“為了完成代碼而寫代碼”的毛病。 其實這些毛病誰都發生。下面我就講講這麼多年來,我見過的一些代碼編寫人員常犯的錯誤。 (本文的代碼都是虛擬碼) 1.不遵循“先出域”原則 原代碼 public void Save(string
前一段時間發布了fastmqV0.1.0版,這個版本有一個致命的記憶體流失問題。當並發量上去時,因為線程內變數的原因直接導致了進程會退出。經過2個月的尋找、排錯終於在上個星期更改完畢。不過這次更改的範圍比較大,不要有以下幾點:1. 刪除線程池,使用work thread的方式進行thread的管理;2. 對於work thread的觸發不再使用參數通知的方式,而是採用libevent經典pipe方式;3. 修改了因為使用參數通知而引發的記憶體流失問題;4. 修改了線程的work
這段時間都沒有寫任何的blog,主要的精力都放在了albian的開發上。因為一個朋友創業,原本有意加入之,所以加緊了albian的開發,但因為額啟動成本的問題,這段時間開發的albian是java版本的,俗稱albianj。後來因為瞭解的深入,感覺這個創業項目不靠譜就放棄了。但是albianj基本上寫完了。總體結構、思想都沒有任何的改變,但是代碼結構albianj和albian.net相比成熟很多。albian.net會在下次重構的時候更改代碼結構。
.net提供的檔案夾瀏覽控制項FolderBrowserDialog只能瀏覽本地檔案夾,本文中,將設計一個檔案夾瀏覽控制項,通過繼承該控制項並重寫某些虛函數,就可以擴充出不同功能的檔案夾瀏覽控制項(如瀏覽本地檔案夾,瀏覽網路上其他機器的檔案夾)。 設計思路:
動態產生靜態頁面有許多好處,比如產生html網頁有利於被搜尋引擎收錄。同時,由於減少了資料訪問,減輕對資料庫訪問的壓力,提高了網頁開啟速度。於是自己編寫了一個用於動態產生靜態頁面的類——TextTemplate(名稱似乎和靜態頁面沒有關係,這是因為它還有其他功能,這些功能將在下文提及)筆者之前發布的.net文檔產生工具中的頁面和編譯CHM所需的工程檔案(HHP)和內容檔案(HHC)都是用這個類產生的。基本思路:使用一個字串作為頁面模板,再頁面中包含用若干標誌(用 {標誌名}
FastMQ V0.1.1即將在本月底發布,FastMQ V0.1.1版本的設定檔和V0.1.0版本的設定檔沒有根本的區別,為了更好的使用FastMQ,下文講述FastMQ V0.1.1的更改之處和安裝,使用方法。 相對於V0.1.0,FastMQ V0.1.1最大的改變是在程式架構上的,V0.1.0版本使用fostlib的share
Albian是一個開源的企業級開發庫。它提供了我們在開發過程中使用的ORM、IOC等功能。但是如果Albian只是提供這些功能,那麼現在市面上隨便找找開源的架構就可以整合。Albian真正的亮點在於它提供的另外幾個實用但是市面上很少提供的功能。資料庫(表)路由、讀寫分離、異構資料庫、分布式鎖服務、緩衝同步,分布式鎖等等功能。 功能解釋: ORM、IOC:誰都知道,不解釋; 1.資料庫(表)路由:通俗一點說句是分庫分表。單我們的資料量猛增的時候,任何一個關係型資料庫都無法使用單庫
遠端控制程式(Spy)是作者在學習網路編程時編寫的一個網路程式,其功能有:1、實現遠程檔案操作(上傳,下載,複製,刪除等);2、遠程啟動命令提示字元 ; (如果受控端裝有卡巴,啟動CMD可能會被阻止)3、遠程啟動自己編寫控制台程式;註:該軟體僅用於交流和學習,請不要用於非法用途!下載遠端控制程式下載原始碼聯絡作者該程式包含3個程式:1、spysvc 服務端(受控端)2、spycmd 命令列用戶端(控制端)3、spy GUI用戶端(控制端,需安裝.NET
albian經過了一個星期的開發,目前一條主線已經完成了。能完成簡單的單實體insert操作,並且已經支援了database routing。就目前的開發進度,語句不帶cached的albian orm會在一個半月之後完成。 在這段時間內,開發碰到了一些問題,自己也得到了一些啟示。 1.首先是databse connection pool問題。一般net連結的都是sql server資料庫,而一般我們需要使用connection pool的時候,我們經常在connection
公交車路線查詢系統後台資料庫設計系列文章資料庫下載 (該資料庫已經輸入了廣州市350條公交車路線作為測試資料) 在《查詢演算法》和《關聯地名和網站》兩篇文章中,已經實現了通過地名或網站進行路線查詢的演算法,但是在現實中,從起點到終點不一定全程都是乘車,例如,有以下3條路線:R1: S1->S2->S3->S4->S5R2: S6->S7->S2->S8R3: S8->S9->S10假如現在要從網站S1到S7,如果用Inquiry查詢路線,
您的標誌主題The Gallup Organization 多年的研究表明,效率最高的人往往是那些非常瞭解自己的優勢和行為的人。 這些人最擅長通過制定策略來滿足日常生活、職業發展以及家庭的需求,甚至可能達到更高的水平。回顧您所擁有的知識和技能可以讓您對自己的能力有一個基本的認識,但是瞭解自己的天賦將會切切實實地揭示您始終成功的核心原因。您的“標誌主題”報告中包括 5 項您最出眾的天賦主題,它們按照您在 StrengthsFinder 中的測試結果進行排序。 在您所測評的 34
昨天晚上未加班,回家繼續albian。發現了兩個問題。 目前albian已經可以簡單的儲存資料了,albian提供了2個create的重載:儲存一個實體、儲存多個實體。在儲存一個實體的時候未發生問題,資料能準確的根據路由儲存到我們指定的資料庫和表。在儲存多個實體時,開始測試了儲存兩種不同的實體:比如一個order、另外一個bizoffer,也不會出問題。但是在儲存兩個相同類型的實體時(比如兩個order)。就發生了問題:後面的一個實體資料會覆蓋掉前面的一個實體資料。開始懷疑是不是在分配st
Varaible及其原始碼下載 Variable是一個用於在用戶端與伺服器之間傳遞資料的控制項,其功能特點有: 1.可以向Javascript傳遞DataTable,Hashtable等類型的變數,在頁面產生一個名稱與控制項ID相同的變數; 2.在用戶端可以使用Javascript修改變數的值,回傳時自動將更新後的值傳送到伺服器; 3.實現了ICallbackEventHandler介面,在ASP.NET網頁中不經過回傳在用戶端與伺服器之間傳遞資料。 Variable使用指南 摺疊所有
剛剛換公司,來到新公司後經曆了一個星期的適應後正式開始幹活。今天為同事解決了一個問題。問題的描述是這樣的:首先程式是多線程的,要求就是對單線程內某一對象的訪問,必須保證其對象線上程的生命週期內必須是同一個執行個體,線程是在thread pool中的,也就是說thread不會自己結束。
這個星期雖然工作很忙,但是albian的開發進度還是沒有拉下。目前albian已經完成了簡單的IOC功能(至少對於albian夠用了);還有albian的ORM已經完成的差不多了,下個星期應該可以完成ORM,但是不帶cache的。 這個星期的開發中,也碰到了一些問題。記錄下來和大家一起探討。如果對於這些問題有更好的解決方案,歡迎聯絡我。
到目前為止,albian的ORM開發工作基本上那算是告一個段落了。下面的就是測試和完善。經過測試以後,我會寫一篇怎麼使用albian的orm完成基本的資料庫增刪改查工作,並且加上資料庫路由功能等等。當然對於一些未經曆過系統架構的XT,偶也會增加一些系統架構的,當然主要還是圍繞著albian的ORM和資料庫路由功能展開。 在這一階段的開發過程中,和往常一樣,還是碰到了一些問題。 1.
今天我在weibo上發布了albian將放棄支援緩衝同步後,引起了以前的夥計們一片的談論聲。有認為緩衝同步不是一項好的解決方案的、也有認為沒有緩衝同步將無法使用本機快取的、還有擔憂一台機器的本機快取各自為政導致全站緩衝狀態錯亂的......,但是很不幸,albian還是決定不支援本機快取的同步。
很久之前就想寫這篇文章,但是作為一個技術人員,苦於但是只是心中有概念和想法,實施還沒有真正的開始,所以一直沒有寫。現在,albian的net實現主體部分已經完成了75%左右,單機已經可以勉強湊合的運行了,所以心中有了底氣,才寫這篇關於albian架構的文章。這一篇完成後,下面一連幾篇都將會講述albian的使用方法,從簡單開始一直到複雜。