Time of Update: 2017-02-27
在與 Martin Fowler 共同參加的一次主題演講中,他提供了一個敏銳的觀察報告:Java 的遺產是 平台,不是 語言。最初的 Java 技術工程師曾做過一個了不起的決定,將語言從運行時中分離出來,最終使 200 多種語言可在 Java 平台 上運行。該基礎架構對平台保持長久活力非常關鍵,因為電腦程式設計語言的壽命通常很短。自 2008 年以來,每年由 Oracle 主辦的 JVM 語言峰會都會為 JVM 上替代語言的實現者提供與平台工程師公開合作的機會。 歡迎來 到
Time of Update: 2017-02-27
說起開放平台,大家應該都知道是很厲害的東西,按2011年的資料,Facebook的應用數超過了55萬,這些應用每天被安裝的次數超過2000萬次。但是很少有人知道,地球上六分之一的網站採用Wordpress架構,在Alexa排名前10萬的網站中,有16.7%使用了WordPress。如果把WordPress看做一個開放平台的話,它比Facebook更有影響力。而事實上,它就是這樣的一個平台。什麼是開源平台開放平台之所以能大規模流行,是因為它釋放了控制權:你可以為平台開發應用,使用平台的使用者、流量
Time of Update: 2017-02-27
進階安全性注意事項簡介第 1 部分 解釋了 IBM WebSphere Application Server V6.1 和更高版本在設計時如何考 慮到預設安全性安全原則。目標是在最常見的配置和比較簡單的環境中,讓這個產品在預設情 況下具有合理的安全水平,儘管這個目標還沒有完美地實現。前一篇文章最後介紹了 WebSphere Application Server 中已經採用的許多重要的基於基礎設施的預防性安全措施。本
Time of Update: 2017-02-27
之前寫了一篇搭建sae的python平台,通過微信公眾平台驗證的博文。現在就是要承上啟下,開始開發的第一步。也許你會說開發的第一步就是寫代碼。那我會對你表示鄙視,儘管南苑隨筆是個很簡單的應用,但是多少也還需要設計一下。確定一下需求,為了將來能夠吸引到粉絲來關注我的公眾號,我必須要定位好我的app,然後提供優秀的內容,並確定它的運營模式,才能進一步地提升我們的應用水準。需求分析首先,這個app是要用python寫的,那麼就一定要優雅一點,pythonic一點。對於我自己來說,我要使得這個app至少
Time of Update: 2017-02-27
承啟因為之前設計了要實現一個微信機器人,以向使用者響應響應的文章,這個app十分地簡單,並不需要特別深入的設計,而且我的想法是:拿來主義, 反正github上面那麼多的用python寫的部落格系統,我只需要實現微信響應的部分,也就是從資料庫中擷取文章的資料,然後將文章的標題,url,圖片等資訊打包成xml格式返回給微信伺服器,伺服器再返回給使用者。而且我發現,有菜單的會好很多,就像一個完整的app,可以直接點擊察看某篇文章,而不是硬邦邦的回複。我是用別人寫的一個部落格系統進行改造—&
Time of Update: 2017-02-27
前段時間申請了一個微信公用帳號,想要在伺服器端編程實現自動回複,同時也接觸一下關於django編程,以繼續發揚我在python的web道路。終於到現在,我才有時間將這個過程記錄下來,具體如下:首先明確目標——成為微信公眾號第三方開發人員,通過訊息API認證。使用的語言和架構
Time of Update: 2017-02-27
function split(str,splitor) if(splitor==nil) then splitor="," end local strArray={} local strStart=1 local splitorLen = string.len(splitor) local index=string.find(str,splitor,strStart,true)
Time of Update: 2017-02-27
今天說說junit測試技術,其實這個技術大部分人都聽過,只是有些人沒用過而已,這東西說起來也很容易,但是確實軟體開發過程中必不可少的一門技術,對於一些不規範的小公司也許產品的發布不經過測試,但是對於大型的軟體開發的時候,這技術往往是必不可少的,因為任何一個小地方出錯都可能是一個很難發現的,但是junit技術這個單元測試技術讓我們能邊開發邊測試,使我們的最終產品出錯的幾率達到最少。我今天講的例子,開發環境是myeclipse6.0,在這個開發環境中其實已經整合了我們所要的JUnit測試相關的類,只
Time of Update: 2017-02-27
使用繼承來擴充我們首先想到應該有個基類 Weapon,它供所有各式各樣的武器繼承,比如說Sword、Axe、Bow。Description欄位代表武器的說明,比如“One-Hand light Sword”,Damage()方法則用於擷取武器的傷害,GetDescription用於擷取武器的說明。在不考慮寶石的情況下,我們得到下面的設計:現在我們考慮如何建立鑲嵌有寶石的武器。我們首先考慮到可以用繼承來實現這樣的設計,結果卻發現如果我們需要定義所有嵌寶石的劍(Sword),
Time of Update: 2017-02-27
瞭解不同的服務導向架構 (SOA) 反模式,這些反模式對通常出現的會產生確定性負面結果的情形或解決方案進行了描述。隨著越來越多的企業開始大舉從 Web 服務轉向 SOA,引入、採用和成功實現 SOA 方面的各種障礙變得越來越明顯。其中一些障礙與導致過去的關鍵活動失敗的因素類似;而其他障礙則是 SOA 特有的。對這些障礙和最差實踐進行記錄,將協助顧問、架構師和專業人員不再犯同樣的錯誤,並學習如何避免這些問題的發生。此處彙集和說明的反模式是由作者通過作為 IBM 架構師的個人經驗、研究過去和當前的
Time of Update: 2017-02-27
為什麼要編寫單元測試?原因是單元測試有不少的優點,能夠給我們的工作帶來很大的協助。單元測試的優點1.協助開發人員編寫代碼,提升品質、減少bug。如果大家分析一下我們bug原因的構成,我想有會有一部分bug的原因是開發人員在編寫工作代碼的時候沒有考慮到某些case或者邊際條件。造成這種問題的原因很多,其中很重要的一個原因是我們對工作代碼所要完成的功能思考不足,而編寫單元測試,特別是先寫單元測試再寫工作代碼就可以協助開發人員思考編寫的代碼到底要實現哪些功能。例如實現一個簡單的使用者註冊功能的業務類方
Time of Update: 2017-02-27
引言一個例子我們先看一個例子,以瞭解對”規則”做單元測試的特點。我們有一個效能調優工具 WPA, 它能夠將與效能相關的參數的值進行評估並推薦最優值。它的評估和推薦最優值演算法都是基於”規則”的。JAVA 虛擬機器的初始堆大小(JVM initial heap size)是一個影響 JVM 的效能的關鍵參數。效能調優工具 WPA 有一套規則對“ JVM initial heap size ”的值進行評估(參見清單
Time of Update: 2017-02-27
設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使代碼編製真正工程化,設計模式是軟體工程的基石,如同大廈的一塊塊磚石一樣。GoF的“設計模式”是第一次將設計模式提升到理論高度,並將之正常化,本書提出了23種基本設計模式,自此,在可複用物件導向軟體的發展過程中,新的大量的設計模式不斷出現。一、
Time of Update: 2017-02-27
本文是實戰每晚構建系列的第三篇,利用第二篇文章中敘述的開源技術對第一篇中的分析模型進行設計和實現。1、構建資訊顯示系統的設計這是一個典型的web應用系統,不過非常簡單。根據《物件導向的系統分析和設計》所描述的,設計主要對四個部分進行描述:問題域的細化:考慮將來實現語言的特性和利用某些設計模式,對分析模型進行細化,並作某些權衡。實現對未來系統"如何做事情"的描述。人機介面設計:考慮和使用者的互動,對資訊顯示的布局和接收使用者指令或資料的行為進行設計。儲存設計:考慮如何儲存業務資
Time of Update: 2017-02-27
本文是實戰每晚構建系列的第二篇,主要敘述在設計構建平台時要考慮的一些開源或第三方技術,其中既有有類似於"Hello world"的入門介紹,也有精髓內容解析,還有注意點提醒。1、相關開源或第三方技術在進行設計之前,我們有必要瞭解一些開源或第三方在項目構建方面的技術。學習這些技術的最好方式是弄到一份,仔細閱讀文檔,實踐一些小的例子,在工作當中使用之。1.1 ant
Time of Update: 2017-02-27
介紹應用程式通常使用資料緩衝來提高效能,尤其針對那些大量應用唯讀事務的應用程式更是如此。當資料發生變化時,這些應用程式會直接更新資料庫。問題在於隨著負載的增加,回應時間將隨著更新的增長而延長。資料庫並不擅於執行大量處理少量記錄的並發事務。相對而言,處理批量事務才是資料庫的強項。實際上,隨著額外負載的增加,回應時間急劇攀升,資料庫就會耗用CPU或者磁碟。傳統方式下,記憶體中緩衝(in-memory
Time of Update: 2017-02-27
為什麼要非同步編程在現在大規模高並發的 WEB 應用中,由於硬體及網路的限制,I/O 處理速度相當較慢,往往 成為 WEB 系統的效能瓶頸。Node.js 通過非阻塞的 IO 和事件驅動很好的緩解了 Web 服務器在高並發時的資源佔用,極大 的提高了 WEB 伺服器對高並發的處理能力。同時 Node.js 帶來的輕量快捷的非同步編程給 WEB 開發帶來了一股清新的空氣 。那麼對於廣大的 Java 開發人員來說,是否可以實作類別似的 WEB 開發呢,答案是肯定的。利用 Groovy
Time of Update: 2017-02-27
引言在使用者使用 Java Swing 進行使用者介面開發過程中,會碰到如何對 Java Swing 的控制項進行布局的問題。 Swing 的控制項放置在容器 (Container) 中,容器就是能夠容納控制項或者其它容器的類,容器的具體例子有 Frame、Panel 等等。容器需要定義一個布局管理器來對控制項進行布局管理,Swing 當中提供的主要的布局管理器有 FlowLayout、 BorderLayout、BoxLayout、GridLayout 和 GridBaglayout,
Time of Update: 2017-02-27
一、背景天雲趨勢在2012年下半年開始為某大型國有銀行的曆史交易 資料備份及查詢提供基於Hadoop的技術解決方案,由於行業的特殊性,客戶對服 務的可用性有著非常高的要求,而HDFS長久以來都被單點故障的問題所困擾,直 到Apache Hadoop在2012年5月發布了2.0的alpha版本,其中MRv2還很不成熟,可 HDFS的新功能已經基本可用,尤其是其中的的High Availability(以下簡稱HA)
Time of Update: 2017-02-27
前言GMF(Graphical Modeling Framework)是Eclipse的一個開源項目,它在結合了EMF和GEF的 基礎上,為基於模型的圖形化編輯器的開發提供了一個功能強大的架構,開發人員可以採用建 模的方式很容易的產生高品質的代碼架構。GMF主要由開發工具和運行時兩部分組成。開發工具負責基於GMF核心模型的設計和建模工作 ,包括:描述具體領域模型的 Graph 模型的表示,Tool 模型的表示,以及如何用 Mapping 模 型對前面三個模型進行映射組合,從而根據定義好的