在使用了 AWK 這樣的語言之後, 我承認, 程式員的快樂與他所使用的程式語言是有密切關聯的, 儘管大家都主要是為了一口飯吃。 不過吃法不同, 吃的過程也不同。 為什麼有人喜歡某一種語言呢? 因為這種語言必定有一些過人之處, 並且好用。 比如 AWK 這樣的“非主流小眾語言” , 通常短短几行語句就可以達到那些主流語言幾十行甚至幾百行的代碼, 何樂而不為 ? 編寫這樣的程式是一種創造性的過程, 通常沒有太多代碼需要複製和粘貼,
本文暫不討論“線程、進程、競爭冒險” 等這些並發機制和細節, 而專註於提供一個基本的思路和想法。 世界是物件導向與並發的。 無數個體對象出於各種意志並發地完成活動, 推動世界的發展。 必要思想 具備一些基本必要的思想是重要的。這些思想會影響我們的思考方式,以及設計和編寫程式的決策。 1. 使用“對象”(而不是類)的思維去思考問題。
提高代碼可讀性,首推《代碼整潔之道》一書。亦可參考 《Java編程規範》。 提高代碼可讀性直接有利於提高系統的可維護性。如果那些什麼事都不做的抽象有什麼益處的話,至少它提高了代碼的可讀性。做一件事,就把它做好。為自己建立一致的命名風格,從此遠離命名的困擾吧! 鼓勵:1. 多查詞典,使用具有明確含義的詞語或短語;使用熟知的容易理解的詞彙。比如,elapsedTimeInDays就比days
(四) 及早規劃 任何一個行業,要想在相同的時間內獲得更好的發展,都需要進行仔細的職業規劃。那麼, 作為程式員,自然不能例外,並且更加不能例外。雖說 35 歲的生命期聽上去有點嚇人,不過也不是全無道理。 體操運動員的生命期不是更短嗎? 能夠堅持走下去當然是好事,但是換一種不同的方式生存也是一種不錯的選擇嘛! 那麼, 作為開發人員的你,打算成為哪方面的專業人才呢? 技術, 產品,運營,市場還是管理 ? 在多長的時限內完成怎樣的飛躍 ?
從一個編程初學者,到一個程式開發菜鳥,再到技術高手、技術大牛、大師級人物, 必有一個成長路線。 根據自己的學習開發經曆,我覺得一個程式員的成長之路可以按照如下循序漸進: 技術技能: 1. 初學編程: 找一兩本優秀的程式設計語言書籍,按照例子敲代碼。 推薦 K&R 《TCPL》 和 BE 《Thinking in java》
電影,講述一段故事,給人一段回味,這就足夠了。 電影不複雜,不需要追根究底。我們的生活,也是由若干簡單的模式所重複演化而成。這些模式若符合我們的心性和期望,我們就快樂,反之則煩躁,煩躁蓄積到一定程度就會引發崩潰。生活就是這麼簡單。 改善自己生活其中的模式,你就能獲得快樂。 無名特質: 無名特質是我們感受到自身,感受到歡喜自由的時刻; 它存在於地球上的所有生靈中,使我們自然、舒適、放鬆;
實踐以下的方法技巧,成為自己時間的掌控者:1.
做好四件事: 1. 運動,加強身體素質; 2. 傾聽、理解、表達; 3. 技術鑽研、探索; 4. 感受自然,欣賞風景。 在公司: 業務、交流、協作、開發工作; 個人獨處: 技術鑽研,運動、休閑娛樂。 節假日: 運動(身體素質)、閱讀(理解能力)、
此指令碼用於為 Debian squeeze 系統一次性安裝必備軟體環境。 步驟一: 準備工作 (1) 準備一個可行動裝置,將必要的檔案放置其中。 目錄如下: 行動裝置根目錄: | - csat/packages/ |- eclipse maven tomcat (tar.gz) , |- OOffice Opera Chrome (deb) |-
生活就是這樣子,當我們以為可以一直就這樣走下去的時候,它會在有一天突然跳出來對你說 : hi, 該轉個彎了! 技能是必要的,但想象力更重要。它是不受時空限制的精靈。 開發工程師在注重邏輯嚴謹的同時若能捎上想象力, 則寫出的程式定會擁有一種更奇特的內在之美。 生命短暫,技藝永恒, 追求無境。 前端開發,一條不歸之路, 是被迫, 是誘惑,還是挑戰? 從電子到軟體,一次不算華麗但也還不錯的轉身,如今要從後台轉前端,糾結,徘徊,
學習Linux 的朋友們,大概都有過在 linux 下尋找各種解壓方法和命令的經曆吧! 可是, 總是容易忘記解壓命令的用法, 而且手工維護也挺麻煩,一遍遍敲入這些命令也挺膩的。 如果能夠快捷、動態地維護和更新、安裝壓縮包, 那不是更好 ? 壓縮包動態維護的基本思想: 1. 使用目錄 $PKG_PATH 存放所有的壓縮包(tar.gz, tar.bz2, deb, zip, rar, 7z, tgz); 2. 使用檔案
su認證失敗的解決方案 Ubuntu安裝後,root使用者預設是被鎖定了的,不允許登入,也不允許“su”到 root。有人說這是個不好的實踐,特別是對於伺服器來說。我覺得對於案頭使用者來說,這樣安全性更高一些,是應該的;但對於伺服器可以設定成“允許 su 到root,但不允許root使用者直接登入”。而我為了開發時的方便,則在案頭和伺服器上都採用這種方式。 ◆允許 su 到 root非常簡單,下面是設定的方法: me@tipfoo:~$ sudo passwd Password: <---
我遇到的問題是這樣的。項目使用 Spring + Hibernate + proxool 實現資料庫連接管理和訪問。 需求是實現多資料來源的動態配置和載入使用。 思路是: 1. 用一個類 AdvancedDataSourceInitizer 實現ApplicationListener 介面,當 ContextRefreshEvent 事件被發布時, 自動從資料庫中讀取資料庫配置,轉化為 ProxoolDataSource 對象,並存入到一個 Map<
【基本步驟及流程】 1. 根據問題進行初始的需求分析,提取出初始而不完備的【to-do】列表; 2. 選擇【 to-do】列表中的某個【to-do】, 編寫相應的測試; 3. 運行測試,發現無法通過; 4. 作出最簡單的的改進,並運行測試使之通過; 5. 一小步一小步地重構代碼、運行測試,並使之通過; 6. 跳轉至【2】。 【關鍵要素】 1.【to-do】列表: 需要完成的任務、當前要做的事情、標識完工。 2. the
對於嵌入式領域的公司來說,需要根據公司的規模和性質確定平台及產品的發展模式。也就是說,在大平台上開發小產品還是在小平台上開發大產品。如果公司的規模較大,但是產品的應用領域不同,涉及行業較多,可以採用大平台-小產品的模式。公司統一使用自己構建的開發平台,同時平台上各種介面考慮比較完善。在開發產品的時候,在平台上做“減法”操作即可。這樣節省了很多基礎工作,並且在同一個大平台上進行不同產品的開發,很多基礎的東西具有一定的繼承性和共用性。 如果公司的規模較大,
仙三鎖妖塔第四層迷宮貌似聽說是比較難的,所以我特地畫了個圖,看看自己的智商能不能搞定,嘿嘿,還行!
零碎時間應該拿來做什嗎? 許多成功學書籍都會建議抓緊時間學點東西,並且冠以“時間管理和效率提升”的標籤; 但我現在不這麼認為了。我的想法是: 零碎時間,應該放下書本, 拿來做以下事情之一: 1. 閉目養神, 靜思冥想,活動身子: 有助於調節心態, 保持氣血通暢、精力充沛; 2. 思考生活工作上遇到的問題, 職業規劃: 停下來, 思考, 才能更快地前進; 3. 與別人交流: 有時, 與人交流可能會有更大的助益;
花了一下午重構了下資料庫互動層的代碼,減少了piles of code , 稱起來應該有幾克重吧? 還想到了一個模板方法模式,進一步減少了一大堆的getSession 和 closeSession. 感覺還不錯。錯漏或考慮不周之處,還懇請指出。 package com.ccnu.salary.utils;import java.util.ArrayList;import java.util.List;import
互斥量和訊號量的區別 1. 互斥量用於線程的互斥,訊號線用於線程的同步。 這是互斥量和訊號量的根本區別,也就是互斥和同步之間的區別。 互斥:是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。 同步:是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源 2.
不是單純孤立地去學習資料結構、設計模式、線程技術,或者其它任何編程技術,——必定有一條中心主線貫穿其中、統籌全域,這條中心主線就是:表達思想。 程式員到底在做什麼呢?寫程式?那隻是表面形式而已。程式員所做的事情,與作家一樣,與現實中無時不刻所做的事情一樣,不過就是在表達思想。只是,現實中或者作家使用自然語言,而程式員則受限於電腦能夠聽懂的語言。 程式員必須熟悉所使用的語言要素。“樹木”,標識現實世界中的一類植物;int