當前位置:首頁 » 編程語言 » soaphp

soaphp

發布時間: 2024-10-27 15:54:21

『壹』 怎麼成為一個軟體架構師

架構師是一個充滿挑戰的職業,知識面的寬窄往往決定著一個架構師的架構能力,所以在這一點上我比較贊成你的學習方式,就是要閱讀大量的技術書籍,但我希望你不要僅限於軟體相關的書籍,經常泡技術論壇,一方面可以結交朋友,一方面可以增加自己的知識面。

公司的大小往往決定了所做的項目規模,一般的大項目不太可能直接總包給小公司去做,但這並不妨礙小公司可以分包到大項目的一部分。在做小項目的同時也可以積累豐富的經驗,我自己就是一個這樣的例子。
我在小公司混跡了5年多,其中也偶爾有1兩個大公司,比如大唐電信,但是基本上都是小公司,從基層的程序要到公司的開發總監都做過,甚至自己還設計過包括LED顯示屏,密碼鍵盤在內的收費系統,自己聯系廠家OEM,當然這些今天已經廣泛應用了,當時我們的客戶用上之後還是非常震撼的。
知識面的寬廣對於一名出色的架構師來說是必不可少的技能,也許很多人對架構的理解還停留在設計模式,重構,SOA等等的軟體層面,然而這僅僅是非常基本的東西,架構師的腦子里不光需要知道讓軟體如何高效的運行,還需要知道如何去結合網路,存儲,甚至一些文件系統的特性,比如GFS,NFS,XFS,NTFS等等,而且架構師還需要知道一些編程語言的特性,C,C++,javaphppython,Lisp,JS等等,現在是一個混合編程的時代,只了解一種語言,即使再精通也會使你在架構系統的時候受到很大的局限性。
再有一點,架構師需要對資料庫技術有深刻的認識,因為現今是一個信息時代,大量的信息都是需要存儲並檢索的,資料庫設計的不好,將會嚴重影響系統的性能,而這一點往往會被我們的設計人員忽略,他們只知道遵守那些範式而不會結合數據的特性去設計資料庫。
看你的編程情況,你好像做PHP開發比較多,PHP比較適合B/S結構的應用開發,這會限制一個架構師的思路,我建議你再學習一門適合做C/S開發的語言,拓寬自己的視野。
從一個程序員到架構師是一個很大的變化,架構師需要從大的方面考慮,而不只是考慮這個模塊該用哪種設計模式去開發。不能急於求成,也許是我自己變化的比較慢,我用了10年的時間,這10年裡,我使用超過一年的編程語言包括了delphi,C++,Java,python,使用的資料庫包括了oracle,infomix,sybase,sqlserver,mysql,javadb,sqlite等等,使用過大型機,小型機,伺服器。unix,linux,windows都至少做過兩年以上的開發,這些使用和開發的經歷會大大增強一個人在做架構師這個職業時的技術素養。
總之,想要成為架構師,需要有耐心,不斷學習,拓寬自己的視野,不僅僅局限於自己眼前的項目,關注開源技術,關注熱門技術社區的新動向。

『貳』 thinkphp中怎麼用ajax

第一.tp中ajax的url需要使用大U方法.比如:$.post("{:U('User/add')}")

第二.控制器中返回結果得第一種方法.$this->error('失敗','',true); 第三個參數為true.則發揮的是json數據.包含info.status.url三項.

第三.控制器中返回結果的第二種方法.$this->ajaxReturn(array('customKey1'=>'customValue1','customKey2'=>'customValue2','customKey3'=>'customValue3')).

『叄』 Linux 腳本編寫 如何編寫一個腳本,修改已有文件中的內容

實現的方法如下:

1、第一步,打開命令控制台以找到要編輯的文件,執行命令ls來查看下面的一些文件,在下面有一個index.php文件,如下圖所示。

『肆』 JAVA程序員需要掌握什麼知識

給你個參考吧。
作為一個合格的Java軟體工程師必須具備的條件?

這個問題是我一直想知道的。但是它又分為很多個方面...
比如,是掌握具體的技術,
還是,擁有很強的自學能力?

現在的軟體方面跟新和升級特別快,
無論是什麼知識,當你真正掌握它的時候,也許就已經被淘汰了。
所以這就要求我們不停的去學習...
所以自學能力很重要.
但是我覺得自控能力更重要...(悲哀...今天看了一天動畫...)
我自認為是沒有什麼自控能力的人...

好了,再來說說技術方面。
到底現在該掌握些什麼具體的知識呢?
這里,我真羨慕.net程序員...
從頭到尾就一個.net framework(.net框架),
這樣就可以很集中精力去深入學習它,而且不用擔心會被淘汰...
而Java這邊,洽洽相反框架滿天飛,而且各有所長...
這就難免讓人需要經歷選擇性的痛苦...(雖然原理都差不多)
而且還要根據公司的不同而使用不同的組合...
這就產生了n種集成方案...(崩潰啊...)
所以要全部學會幾乎不可能啊...
雖然是這樣,但是有點挑戰性才有意思嘛...呵呵...

那麼一個合格的java軟體工程師究竟需要掌握哪些具體的知識呢?
下面就我個人的角度來總結一下,如有不足,也請高手指出。
(ps:本人只列出普遍常用的知識)

首先當然是Java語言本身了。Java語言的創始人曾說過"Java=C++--"。
什麼意思?就是Java語言是在C++的基礎上減去一些不必要的東西,使其更為實用,更具有生產力。
Java語言的語法很簡單並不像C++那樣復雜.(本人曾經接觸過C++...傷心的經歷...)
很多較為復雜的數據結構Java都能簡單實現,而C++較為麻煩。
其中很大的原因是因為Java是單根結構.
而且Java的垃圾回收機制也有很大的功勞.(.net的垃圾回收機制也是Java的靈感)
但是如果想深入底層了解Java還是需要費很大的功夫的...
比如,你要學會javap命令去反編譯java文件然後再去看懂那些反編譯後的結果...
這樣你才能了解Java語言的原理。
很多情況下不同的代碼,但是最後產生的位元組碼是相同的。
也有些情況,雖然代碼只相差一點但是效率是天壤之別。
(例如JDK5新添加的StringBuilder和StringBuffer的區別)
這些在都可以反映在位元組碼里。
關於Java語言的問題不是本文的重點,我就不多說了。
總之學好Java這門語言是基礎中的基礎。

其次,說到Java語言就不能不說面向對象(OO)。
Java語言的產生也有很大的一部分是為了生成一個具有生產力的OO語言。
為什麼這樣說?
在早些年代OO的思想雖然被提出,但是那些純粹的OO語言卻沒有絲毫的生產力。
(如出名的:smalltalk它是100%的OO)
而Java在保持高度的OO的前提下更注重生產力。
(ps:Java是98%的OO,其中8種基本數據類型,static關鍵字,運算符等,這些都不OO)
所以隨著軟體工程的龐大OO的思想很重要。

好了,到這里如果以上你有所了解,並掌握的一般。那麼就可以繼續往下學習:
如果你想掌握Java語言中更精髓的東西,那麼我建議你可以做一些小的桌面應用程序。
其中,你會學習到另一些知識:
並發,IO,GUI,AWT,Event,Listener,Socket,Reflect等java更深層的東西。
(當然,有些只需了解,因為有些東西將來在做B/S結構的系統上是用不到的...
如果將來你想從事嵌入式開發,這些你就要多一點了解了。
很可惜,我還沒有想過去做那個...
還記得當我第一次了解AWT里的Event和Listener的實現方式後,
我覺得JDK的設計人員真是厲害,設計的是那麼的巧妙,第一次感覺代碼是那麼優美,
裡面用到了各種設計模式,真是讓人驚訝。
遭了,又在自我陶醉了...)

回到正題,關於Java語言的基礎,我就先講到這。
當我們掌握了Java之後呢?
真正的Java開發現在才是開始:
這時我們必須要接觸另外一樣東西,
沒錯,那就是資料庫!
資料庫的重要性就不用我在這里強調了吧?
無論你學習什麼技術,資料庫都是必備品。
作為Java程序員,我們不是DBA,我們沒有必要掌握太多的資料庫的管理知識。
我們只要知道如何連接資料庫進行訪問和CRUD操作,並對一些地方提高效率就可以了。
如創建索引和適當的使用存儲過程即可。

首先,學習什麼樣的資料庫呢?
沒辦法,多了解一點吧...畢竟每個公司用的都不一樣...
目前的4大主流資料庫是必須要學習的:
DB2(IBM號稱世界上用的最廣泛的資料庫,不過近些年已被MySQL慢慢侵蝕掉了.但是很多的大公司在用,畢竟是IBM啊。)
SQLServer(當年憑借SQLServer2000獲得很大成功,由於和Microsoft的產品兼容很好,所以很受歡迎。)
MySQL(真正的輕量級啊...而且是低端的主流開源資料庫,使用量已經超越DB2。)
Oracle("甲骨文","神諭","聖賢","哲人"...光是對Oracle這個單詞的翻譯就可以看出它多麼擁有實力。不過大的有點誇張...)

好了,如果你已經會簡單的使用上面的資料庫了,那麼就繼續往下吧:
既然要訪問資料庫,那就離不開JDBC!
JDBC相信大家都知道,它只是一組介面,然後由不同的資料庫廠家去實現,
這樣用JDBC訪問資料庫的時候方法其實都是一樣的,這里我就不多說了。
另外JDBC是將來ORM的底層實現,學習好了它,對ORM框架的實現就更為清楚原理。
下面重點要說說SQL語句。
SQL有2套標准(82和99),我不太確定...記得不太清楚了...
現在的資料庫基本這2種都支持。
但是問題來了,不同的資料庫,又對其改變了一點...
這是最令人頭痛的...
也就是說,4種資料庫,你就要記住4種SQL的區別是什麼,雖然大體差不多,但是還是要區分開來的。
而且不同的資料庫,對SQL語句又有不同的優化。
也就是同樣的SQL語句在不同的資料庫上執行的效率不同。
所以SQL語句也是一門必修之路啊...
而且不要看似簡單,其實要想寫出一條高效率的SQL語句很難啊...
尤其是在復雜的多表聯合查詢中,這種效率問題一定要考慮。
另外,最煩人的莫過於資料庫程序設計。
每種資料庫有自己的語法。如SQLServer里的T-SQL,Oracle里的PLSQL等...
使用這些語言編寫觸發器,存儲過程等...自我感覺是最頭疼的...而且用的不多...
了解一下就好...

好了,當學習完資料庫.我們就可學習web開發了.
所謂的web開發,就是基於瀏覽器/伺服器(B/S)的開發。
那麼既然是在瀏覽器上跑的程序那麼就離不開HTML、CSS、JavaScript、DOM等網頁技術。
所以下一步就是學習HTML,HTML應該是最簡單的標記語言.很容易就能學會。
根據web2.0的標准,XHTML將是規范。
所謂的XHTML其實和HTML4.0的規范差不多,就是標簽的要求更加嚴厲了。
學習HTML的同時還要一起學習CSS,這個東西說簡單,也簡單,說難也難。就看你個人了。
但是畢竟我們不是美工,只要了解就好了。(有時我就在界面上消耗了很多時間...郁悶...)
JavaScript我個人建議還是要稍微花點功夫研究一下的...
畢竟後面涉及到Ajax和用戶體驗等方面需要用到它...
它是一門客戶端腳本語言,即:瀏覽器解釋執行。
是一種弱類型語言,但是研究起來還是很深奧的...
至於DOM本人還沒有花時間研究過,不敢輕易下結論.

當完基本的網頁技術後,就可以進入正題,Java在internet上的應用就從這里開始:
前面學習了網頁技術後,我們就可以做出簡單的靜態網站。(即:沒有與資料庫交互.)
靜態網站由後綴名為.html或.htm結尾。
但是靜態網站是毫無用處的,所以我們要開發動態網站。
最古老的技術就是CGI(通用網關介面).
它根據瀏覽器端的http請求激活響應進程,每一個請求對應一個進程。(注意不是線程,是進程!)
當同時有很多請求時,程序擠占系統資源,造成效率低下。
目前流行的動態網頁技術有:ASP、JSP、PHP、ASP.NET等...
這里我就不一一介紹他們了。關於他們的對比,網上比比皆是.
而今天的主角就是JSP!

JSP是什麼?說白了就是在HTML里嵌入伺服器端可執行的Java代碼。
這里的Java代碼和前面所說的Java代碼是一樣的。
這里要注意的是jsp最終會轉換成servlet。
所以學好Jsp就要先學習servlet。
與applet對應,servlet顧名思義就是伺服器端腳本。
這里是學習的重點。
其他的也沒什麼好講的。

這里要掌握幾個概念:servlet容器,IDE,taglib,DAO,MVC等...
servlet容器,就是解釋執行servlet代碼的地方。
IDE,前面我都沒有提過,也就是因為前面的學習都很簡單,並不需要IDE的支持。
而接下來的開發會比較復雜,文件數量的增多和管理會很麻煩,而且很多的API不可能都背下來。
所以這里就是使用IDE的時候了...至於用什麼IDE本人覺得無所謂...
(我用的是最普遍的Eclipse,當然你也可以用NetBeans6.0以上版本.我覺得也很不錯。)
taglib,這里用的比較少,以後學習框架用的比較多.
DAO,很重要。它的實現方式多種多樣,值得研究。
MVC,很重要。但是重在理解,理解為什麼要用MVC。
最後關於Http協議,Servlet容器里的線程池的實現等...
這些如果你有能力和時間就去看看...沒有什麼壞處...

學到這里,可能中間你會用到另一門技術XML!
作為java程序員來說,我覺的只要了解XML原理就可以了。
不可能還讓你去寫scherma或DTD的...
所以我們只要學習讀寫XML就可以了...(JDOM或DOM4J)

下面在來簡單的說說ajax...
當你程序要求你在不刷新頁面的情況下讀取數據並顯示,這是就是ajax的勇武之地.
如果你之前的javascript沒有學的特別的牢固,也沒什麼關系,用框架吧。
所謂的ajax框架就是一個javascript的庫。它簡化並對javascript封裝。
常見的ajax庫有很多,這可以根據情況自己選擇學習。
(dojo、prototype、jquery、dwr、ext等...)

等學習到了這里,你已經可以獨立的開發一個簡單的網站了。
但是,這里有很多的問題:
1.代碼量大
2.開發時間長
3.系統擴展性差
4.雖然用MVC分層,但是JSP+Servlet+JDBC這種開發方式難以維護。(尤其是JSP里有大量代碼,像ASP那樣)
5.理論上不OO
6.效率低
7.安全性低
等等...
短短一時間我就能想到這么多的不足,證明這離企業級開發還有很大的差距.

那麼正真的企業級應用是什麼呢?
JavaEE的本質就是為了企業級開發...
可惜,至今還未能領悟JavaEE的核心思想...
但從技術角度,JavaEE擁有哪些技術呢?
貌似太多太多...EJB是JavaEE的核心思想...感覺有點類似.Net框架...即:一個框架包含所有功能.
可惜一直沒時間學習過EJB...
所以我下面要講的是如何針對上面的不足加以改進?
1.代碼量大就造成"開發周期的延長"。而且自己寫的代碼有時會有漏洞,或效率上的問題。(如果你不是專家的話)
所以要解決這個問題就要引入"框架".
如果引入了框架,那麼有些問題就可以迎刃而解。
1.代碼量的減少。
2.開發周期的縮短。
3.效率提高一點。
4.安全性提搞了一點。
畢竟人家是頂尖的專業人士,寫出來的代碼肯定比自己寫的健壯又高效。對嗎?而且又可以減少代碼量。

框架分很多種,就像上面的ajax框架一樣,它也是一種框架。
下面就列出一些流行的框架:
MVC框架:Struts1.x,Struts2.x,JSF,webwork等...其中最令我期待的是struts2.
ORM框架:Hibernate3,Ibatis,jpa等...其中最令我期待的是JPA.
AOP框架:Spring2.5 貌似現在只流行這個...AspectJ都沒人提...
至於EJB里的,我不太了解...
但是至少上面的是主流.如果遇到非主流...也就算我倒霉...再學唄...
至於系統擴展性和維護性差是系統架構的設計問題.
這個問題不是我在這里一句兩句就能表達清楚的。
(前些日子搞了個泛型DAO模式,都研究了很久)
UML和design pattern是需要經驗的...

在學習這些框架的過程中會有很多意想不到的事情發生...
再深入學習就是webservice和分布式了...
感覺我還沒有觸及到那個層次...
還差的遠呢...不過慢慢來吧...

今天說了那麼多就是想知道做為一個java軟體工程師.到底需要哪些技術?
我很需要自我反思...
可能我今天說的都只是皮毛,也有很多欠考慮的地方...希望朋友指出...
也可以給我意見...
也許我看問題不全面,或是有偏見,也歡迎指出。

熱點內容
linux輸出文件 發布:2024-10-27 18:22:41 瀏覽:179
久益壓縮機頭 發布:2024-10-27 18:17:10 瀏覽:543
諜影重重合集ftp 發布:2024-10-27 18:17:10 瀏覽:88
如何關閉安卓手機語音控制 發布:2024-10-27 18:12:50 瀏覽:109
win2008ftp密碼設置 發布:2024-10-27 18:02:58 瀏覽:862
left函數sql 發布:2024-10-27 18:00:47 瀏覽:519
江西省農保卡默認密碼是多少 發布:2024-10-27 17:58:13 瀏覽:575
說唱壓縮器 發布:2024-10-27 17:54:56 瀏覽:672
java位或運算符 發布:2024-10-27 17:54:16 瀏覽:916
小黃車怎麼復位密碼 發布:2024-10-27 17:54:08 瀏覽:31