原创 一代的成長

剛和我的一位就夥伴交流,感覺自己是老了。 這位夥伴自我認識的時候,是一個黃毛小子,什麼都不會,招聘他是因爲他比較開朗爽直,也很願意學習。不過他有一個毛病,就是比較堅持己見而且說話不是太圓滑,記得又一次和其他夥伴有比較嚴重的衝突,幾乎大打出

原创 Logback和Logstash的集成

有一段時間沒有關注Logstash這個項目了,現在幾個項目統一在ElasticSearch下面了。可喜! http://www.elasticsearch.org/overview/elkdownloads/ Logstash是什麼 大

原创 程序員的等級

程序員的等級大致可以分爲以下幾種: 要手把手的教着來做事(實習生) 給他準確和完整的指示,才能把事做好(初級程序員) 給他模糊甚至遺漏了的指示,他能把事做好(高級程序員) 給他原則性指導,他就把事做好(系統分析員,架構師) 只說

原创 一次簡單的重構經驗

背景 曾經爲一家律師事務所做的案件信息管理工作,使用的是Playframework 2.3.x / Java。由於是外包項目,原來就只是一個工程,也沒有打算再拆分子模塊。 後來這家公司繼續爲系統考慮添加功能,要增加一系列的CRM中的銷

原创 持續集成交付的流水作業

最近和一位朋友討論持續集成、持續交付在企業的具體價值,和具體執行時的崗位要求,比較值得讓我們思考。 我看的持續交付(Continuous Delivery),主要實現一套自動化的軟件生產線,在生產線的開端,是程序員提交代碼,而生產線的產出

原创 Scala的實際應用場景

背景 我剛接觸函數式語言是在大學裏,一個叫Programming Languages的學科,一個學期學了將近10個開發語言,其中Functional Programming Language是一個系列,有Scheme,ML等。出來工作後,

原创 時間的基礎知識

時間的基礎知識前言時間的本質時間的表達方式運行結構存儲方式數據庫存儲結構JDBC的影響傳遞方式總結 前言 時間處理是所有程序員都必須面對的難題,如果你遇過以下問題: 時間顯示時總是差八個小時時差 存儲在數據庫的時間看起來沒問題,就是

原创 機會

一般做系統開發,很多時候都是在某些基礎之上搭建新的功能,或者維護現有的功能。從零開始做起的項目是很少很少遇到的。 在有一定基礎上建設系統,需要的技能是快速理解現有代碼,框架和結構,並按需求加以改造。按這種思維做出來的代碼通常不會做大手術(

原创 無中生有

很多夥伴做了多年開發,都不太注重【從無到有】這個過程,這裏我想展開一下。 從無到有,是一個創造過程,基本上整個編程工作都是無中生有的,在你敲第一個字的代碼開始,代表了整個創造過程的開始,不過且慢。 用什麼程序敲你的第一個字?在筆記本Not

原创 職業規劃

以前一位同事正在疑惑有關他未來的職業發展,以下我給他的回覆: 說實話,要給出適當的意見,需要對你的性格有一定了解才行。不過有幾點意見是通用的: 第一:如果你的興趣能爲你賺取你的生活所需,這個是最好的。有人跑去開自行車店,因爲自己喜歡自行

原创 項目中的大改動

前因 用戶對程序員說:這個導出的目錄文件(HTML)有兩個問題:一個是點擊鏈接打不開,另一個問題是用表格方式不貼近現實作爲一個目錄頁面的格式。 程序員表現出有點無奈,也有點驚訝和一點憤怒。總的來說,改動不是問題,問題是需求之前不是談好了嗎

原创 項目中的一些軼事

開發雜談 《故事一》 一個運營系統,因爲某種外在原因,急需作出更改,不然,某個流程會跑不下去。開發團隊只有一天時間完成這個緊急任務。 由於改動挺大,團隊並沒有足夠時間分析問題,便憑直覺開始弄了。 一天後,功能勉強可用,流程在半自動半手動的

原创 技術行業中的師徒制

很多行業都是師徒制的: 做學問的: 教授與其研究生 搞藝術的: 二胡大師與其學生 形而上的: 禪修大師與其徒弟 手把手的: 廚師與其徒弟 以上的例子有幾個共通點: 較高的入行門檻 需要一定的意志和追求 需要一定時間的經驗累積和心得

原创 持續集成的成功要素

相信持續集成在現今的軟件行業,應該是必須具備的標準之一。你的項目還沒有持續集成嗎?趕緊弄一個吧! 成功的持續集成環境,在我看來包括幾個重要部分: 清晰的依賴管理 Dependency Management內部軟件庫 Package Re

原创 金融才俊

作爲面試官,最近面試了一個來自金融行業的人,由於我們公司小,對於一個金融背景的人看得上我們公司,我是絕對質疑的,這是我的偏見。不過既然人事部安排了,儘管見一面吧。 第一感覺,整齊端正,頭髮整理甚是講究,感覺果然是個金融才俊。初步瞭解的過程