Java只會寫業(yè)務代碼 java只會寫業(yè)務代碼怎么辦

代碼重構問題 JAVA開發(fā) Service 與 dao 請問。 我在Service層中,只寫業(yè)務。 dao只操作數據庫的相關。

你的描述已經很明確:service處理業(yè)務,dao存取數據。

目前創(chuàng)新互聯(lián)建站已為成百上千的企業(yè)提供了網站建設、域名、網站空間網站運營、企業(yè)網站設計、察哈爾右翼后網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

業(yè)務:涉及一個以上組織,按某一共同的目標、通過信息交換實現(xiàn)的一系列過程,其中每個過程都有明確的目的,并延續(xù)一段時間。

業(yè)務做的是信息處理,邏輯處理。service處于數據層(dao)與控制層(servlet,或action)之間。

dao的主要作用是與數據庫打交道,他不做邏輯,不做信息處理,你要什么數據我給你取,你放什么數據我?guī)湍惴拧?/p>

service做的是業(yè)務,你控制層調用我處理一種業(yè)務,我的業(yè)務可以定義很多動作,這些動作都是與這個業(yè)務相關的邏輯處理,需要數據庫的信息,我找dao。加這一層的目的主要是為了做事務的,因為一個業(yè)務可能需要多個dao操作,若某個失敗,整個業(yè)務是需要回滾的,另外使得外界與數據庫沒有關聯(lián),使得數據更加安全。

這樣說你應該很明了了吧,然后自己判斷,但是有些時候都不是絕對的額,程序擴展性,可維護性固然重要,現(xiàn)實運行性能才是主要的。

只會寫java代碼能找到工作嗎

還是需要一些其他知識做輔助的。如果你的java很強的化,面試的時候就一定要強調你的java基本功,這是做項目的基礎,很多公司都會很看重你的,其他知識可以進了公司在培訓。所以也是有可能的。

我剛開始也只會java,但是參加了個軟件培訓班,所以工作相對好找一些。

我推薦一下,我當時上的是上海杰普軟件。你如果也想培訓可以自己聯(lián)系一下。也可以直接找工作,公司招聘嘛,肯定是需要一上崗就能干活的。如果很出色也會有特例哦!祝你好運!

大家怎么理解“業(yè)務代碼”?為什么有人覺得寫業(yè)務代碼很low?

在我眼里,也經常會把程序員分成兩類:一種是我等這種寫業(yè)務代碼的程序員,另外一種是研究高深算法、造“輪子”的“科學家”...

將他們稱之為科學家是有些夸張,第一次冒出這樣的想法是參加一個技術大會,當別的嘉賓都在分享開發(fā)、設計、架構、管理方面的經驗時,一名在騰訊工作的算法工程師(應該已經是一個小領導了),他上臺分享了一些諸如:滑動平均自回歸模型、神經網絡基因表達式編程、SVM回歸機集成學習...坐在臺下的我第一次冒出這樣的念頭:“這**是科學家研究的東西吧?!?/p>

當然,倒也不能說寫業(yè)務代碼就很 low,寫業(yè)務代碼也不是想象中那么簡單的。

寫業(yè)務相關的代碼,必須了解業(yè)務流程,還需要了解業(yè)務人員心里是怎么想的,也就是業(yè)務出發(fā)點是什么樣子的。

比如我最近遇到一個需求,過程大概是這樣的:銷售人員在賣一款產品,這款產品非?;穑行﹥?yōu)秀的銷售人員一周可能能賣出去幾百上千單;結果我們接到一個需求,要限制每個代理人的銷售數量,比如每人只能賣 10 個(之前已經賣掉的不算);這就讓我們非常奇怪,本來賣的好好的,為什么要做這個限制呢?這個需求看起來就非常的不合理。

后來業(yè)務人員和我們解釋了一下原因:因為這款產品公司不掙錢,銷售人員為了推這個產品,花在別的產品上的時間就少了,所以出這個功能,就是讓銷售人員“收收心”,把精力放在其他產品上。

這么一解釋,我們就立刻明白了;所以如果你不明白業(yè)務的時候,看著需求敲代碼也是非常容易出錯的。

有些人會認為業(yè)務邏輯就是一堆 if-else,但是我認為在實際工作中,這些 if-else 也是非常難做到的。

業(yè)務邏輯是人設計的,業(yè)務邏輯難不可怕,可怕的是它不嚴謹和變化快;業(yè)務邏輯和那些確定性的東西不一樣,比如我們寫好的代碼 if-else 兩個分支,那么再怎么也不會跳出這個范圍,業(yè)務邏輯就不一樣了,它是非常靈活的、不確定的,業(yè)務機會來的快消失的也快,我們很難開發(fā)出來一套全面的、完善的、靈活的的系統(tǒng),去應對將來可能會發(fā)生的需求。

所以在開發(fā)過程中,如果可以將業(yè)務流程拆分成多個組件模型,組件和組件配合完成一個完成的業(yè)務流程;當業(yè)務發(fā)生變化或有新業(yè)務的時候,只需要重新編排這些組件,或對某一個組件做少量更改,就可以滿足業(yè)務變化;如果能做到這個程度,也是非常不容易的。

在這個過程中,你需要做到高內聚低耦合,避免過度抽象,從業(yè)務流程和動機出發(fā),已滿足業(yè)務需要為主;既然做不了“科學家”,我們就努力把業(yè)務代碼寫好把。

我將持續(xù)分享Java開發(fā)、架構設計、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關注。

首先,我認為寫業(yè)務代碼不“l(fā)ow”,但是大部分不假思索拷貝粘貼的業(yè)務代碼比較“l(fā)ow”,換句話說就是所謂的五年工作經驗就是把第一年的工作重復了五遍。

技術人員成長一般有兩條線,一條是成為技術專家,一條是成為領域專家。所謂的轉管理我理解也就是領域專家,畢竟不懂得領域知識是無法做好管理的,比如說你是互聯(lián)網金融某個業(yè)務部門的leader,那么你肯定要懂金融。領域知識就是在不斷的寫業(yè)務代碼和思考中積累起來。

還有一個問題就是如何定義業(yè)務,比如說“實現(xiàn)一個修改訂單功能”,這是一個業(yè)務需求,看起來很low,但是如果業(yè)務需求改成“實現(xiàn)一個修改訂單功能,要求在有限資源的情況下并發(fā)10k,響應時間不高于10ms”,那這個需求就有挑戰(zhàn)。說這個問題想說明白一件事情,如果做業(yè)務不要停留的在業(yè)務表面,僅僅滿足于實現(xiàn)功能,要主動思考。

最后總結一下,沒有最好的技術,只有最適合業(yè)務的技術。技術是內功,業(yè)務是招式,內功不足,后續(xù)成長乏力,沒有招式,內功也不能發(fā)揮威力。這是也很多互聯(lián)網創(chuàng)業(yè)公司做大了之后要技術轉型的原因。

作為一個程序員,我也是寫代碼的,我不覺得寫業(yè)務代碼很low。

1.首先大家所認為的業(yè)務代碼就是一些和業(yè)務相關的增刪改查,涉及到的技術點相對來說是固定的,寫熟了之后,就是復制,粘貼,不存在什么技術阻礙,很多人就覺得非常的簡單,沒有技術含量,做這些工作的人也顯得非常的low,如果你也是這樣認為的,那你就錯了,因為寫業(yè)務代碼的基本都是初級,中級的程序員,工作經驗有限,不具備寫一些公共方法和接口的能力,但是并不代表以后能力不會提升,如果持續(xù)努力,也會成長為高級程序員或是架構師,誰天生就是高級程序員呢,不都是一點點積累起來的嗎?而且就算是寫業(yè)務代碼也不能就是low呀,有些業(yè)務場景是非常復雜的,邏輯必須十分嚴謹,稍有差錯可能就會出現(xiàn)bug,對公司造成巨大的損失,不是寫業(yè)務代碼就是很容易的。

2.除了業(yè)務代碼就是非業(yè)務代碼了,比如開發(fā)數據庫,開發(fā)框架,或是寫一些公共的方法或是接口,供初級開發(fā)者調用。寫非業(yè)務代碼的人技術也不一定就非常的厲害,因為就算是開發(fā)框架或是數據庫之類的項目,也不一定都是高級開發(fā),也會有一些水平較低的開發(fā),因為寫業(yè)務代碼還是非業(yè)務代碼和項目也有關系,如果你們團隊開發(fā)的是開發(fā)框架或是數據庫這種的項目,那么你們團隊沒有人寫業(yè)務代碼,也不能說明你們團隊每個人技術都很厲害,只是項目性質不一樣罷了。

3.業(yè)務代碼這個詞看你的理解吧,我認為其實所有的代碼都可以成為是業(yè)務代碼,無論開發(fā)什么產品,都是有業(yè)務需求的,有了需求才有開發(fā)的動力,對于開發(fā)數據庫來說,數據庫的需求就是業(yè)務,對于開發(fā)框架來說,框架的功能就是業(yè)務,所以我認為廣義上來講都是業(yè)務代碼,沒有非業(yè)務代碼這一說,所以具體看你認為業(yè)務的定義是什么了。不過無論如何也不應該去嘲笑或是去貶低別人吧,嘲笑或是貶低一類人就更不應該了。

業(yè)務程序開發(fā)相對于底層基礎架構層的程序開發(fā)有所不同:

業(yè)務開發(fā)的時間比較緊,變化快。

這個特點導致程序員沒有時間重構代碼,或者不愿意重構代碼,而是用最簡單粗暴的復制黏貼的方式快速實現(xiàn)業(yè)務邏輯。其實所有的復制黏貼都意味著需要重構。

底層系統(tǒng)的開發(fā),一般是架構師和高級程序員來設計和控制項目時間。相對來說,開發(fā)周期長,變化緩慢。會更加注重架構的合理性和穩(wěn)定性,而且會不斷重構和改進。

業(yè)務開發(fā)一旦完成,只要平穩(wěn)運行就不會有人再回來補技術債務,不會把它寫得更好。除非這個業(yè)務爆發(fā)了,不得不從新架構以支持更高的并發(fā)。如果上線之后表現(xiàn)不佳,很可能下線不再維護。所以公司也不太愿意花太多精力在一個還沒有被市場認可的產品項目上。

而底層架構框架的項目會在不同的產品項目中不斷應用。不斷地進化。就像Spring之類的開源框架一樣,不斷的升級和完善。

相對來說,業(yè)務開發(fā)程序員會花大量的時間學習和理解業(yè)務知識;而底層框架程序員更多的時間在學習技術架構。如果業(yè)務知識在行業(yè)內通用,比如財務,金融行業(yè)知識。那么長期的積累對業(yè)務開發(fā)也是很有幫助的。如果業(yè)務是很小眾的,甚至,這幾個月做這個業(yè)務,下半年又做另一個業(yè)務,做的時候也一知半解,就像很多外包一樣,那就沒有什么業(yè)務沉淀了。

不要太在意所謂low與不low,需要在意的是做了這個項目或業(yè)務后,對自己的能力有沒有長進,如果有,那說明不low。如果沒有,那說明你只是在機械的勞動而已。

每個大佬都是從業(yè)務代碼做起的,大佬們注重的是能否成長,學習實踐的機會,以及平臺的大小和未來是否和自己的目標相匹配。

總結來說,只要能提升自己能力的任何工作,都是值得的。

我覺得首先大家要理解什么是“業(yè)務代碼”,業(yè)務代碼是一個相對的概念。

1.對于一個一般的物聯(lián)網應用型公司來說,業(yè)務代碼就是根據客戶需求基于一個MCU或者MPU的應用控制邏輯的實現(xiàn)。

2.對于一個做純上層應用的公司來說,業(yè)務代碼就是基于一個操作系統(tǒng)為客戶量身定制對應的app,并實現(xiàn)對應的應用邏輯。

3.對于一個微型控制器設計廠商,業(yè)務代碼就是底層架構裸機的具體實現(xiàn)和各個外設驅動的框架設計。

4.對于一個設計操作系統(tǒng)的開發(fā)人員來說,業(yè)務代碼就是架構設計、內存管理、調度機制優(yōu)化、優(yōu)先級管理、進程間通信機制優(yōu)化、線程管理和內核完善等等。

所謂”業(yè)務代碼”都是相對的,沒有參考系怎么談。像操作系統(tǒng),站在操作系統(tǒng)內核提供方的角度看,上層所有的應用框架,進程服務,都是業(yè)務代碼,我是為他們服務的。技術只是工具,業(yè)務實現(xiàn)才是目的,站在不同供應商的角度,只要涉及代碼的地方都可以稱之為業(yè)務代碼。所以站在這個維度,如果要說業(yè)務代碼“LOW”,那就沒有代碼是不"LOW"的了。

不過,真正接觸底層或者實現(xiàn)RTOS底層業(yè)務框架的工程師其實是很少的。大部分工程師基本上都是對于客戶需求做一些非驅動底層非操作系統(tǒng)框架的應用型的開發(fā),所以大多時候“業(yè)務代碼“又單一的被指向了那些只是對客戶的上層應用的需求做開發(fā)、調整或者迭代的代碼。

而這部分代碼究竟"LOW"還是不"LOW"呢,我的答案是:不"LOW"。但是現(xiàn)實卻是很“LOW”,之所以會被想成LOW,是因為:

1.判斷一個程序員的優(yōu)秀程度已經不單單看你寫了多少應用型的代碼,設計了多少應用框架,而是你懂不懂底層驅動邏輯,懂不懂操作系統(tǒng)內核,懂不懂內核裁減等等。所以這種情況會經常出現(xiàn)在面試過程中,面試官會因為你不懂底層驅動、不懂內核而給你比較低的薪水。

2.懂得寫業(yè)務代碼的人,他的程序員基礎并不一定就牢固。因為上層應用可能對業(yè)務比較看重,但是對于一些特定的語言的編程并沒有那么嚴謹。能用就可以,所以會自然而然的認為這樣的程序員“LOW”。而一個會寫底層驅動的人,他考慮更多的是基礎代碼的安全、嚴謹性和容量問題等等,他們的語言基礎相對來說要牢固很多。

3.技術負責人一般都是全能型的人。會寫底層驅動或者更懂操作系統(tǒng)內核的人更容易成為技術的領頭人。而那些只會“業(yè)務代碼”的人,放在大部分公司,一般都不會有太多的上升空間。

根據以上分析過后呢,做“業(yè)務代碼”的程序員基本上會被想的很“LOW”,但是結合我的親身經歷,不同的人對于這個事情卻會有不同的看法。

比如對于領導來說,那就不一樣了。你將“業(yè)務代碼”的需求迭代了,完善了,提前任務完成了,客戶很滿意。那領導不會認為你是一個很“LOW”的程序員。你很高級,領導很欣賞,“后果”很舒服。但是對于一個面試官來說,你就會點上層應用的調用和設計。我為什么要給你這么多薪水?雖然會被想成很"LOW",但是也是現(xiàn)實。

業(yè)務代碼不一定low,能完成用戶需求的代碼就是好代碼。

另外,對于我們搞嵌入式軟件、EDA工具軟件的來說,業(yè)務軟件反而是更有技術含量的,更具科學意義的代碼,而軟件可能只是載體,你啥時候透過代碼理解了它們背后的物理概念、數學公式,你就超越了程序員,能向科學家又邁進一步。

互聯(lián)網軟件其實也一樣,軟件實現(xiàn)的是一個業(yè)務流程的自動化,你完全可以透過你寫的程序還原甲方用戶的業(yè)務流程,而這種流程是老板制訂的,認識會上一個層次,將來可以向老板邁進

我發(fā)現(xiàn)很多程序員對于處理業(yè)務邏輯都是「嗤之以鼻」。感覺自己天天寫業(yè)務邏輯代碼,改 Bug 都沒有時間學習,沒有時間實現(xiàn)個人成長?

但是,作為程序員來講,如果不是做底層基礎技術研發(fā)的話,大部分的工作不就是做這些擰螺絲的工作嗎?其實擰螺絲有那么容易嗎?可能擰螺絲很容易,但是擰好螺絲就不那么簡單了。

別小瞧業(yè)務邏輯代碼,如果真正寫好,要把邏輯寫得清晰簡單易用,功能健壯穩(wěn)定,性能同時達到要求的話,其實是挺難的。

其實很多程序員都跟他一樣,都在痛苦的編程,一方面對自己有更高的要求,一方面又嫌棄現(xiàn)在寫的代碼沒有技術含量。又有更高的要去和希望,又嫌棄現(xiàn)在的工作,就是不思考出現(xiàn)的原因,不去付諸行動。還不停的抱怨: 感覺自己天天寫業(yè)務邏輯代碼,改 Bug 都沒有時間學習,沒有時間實現(xiàn)個人成長?

到這里,我們不禁一問:那我們該如何擺脫這種現(xiàn)狀呢?其實很簡單,我們應該擺正自己的態(tài)度和觀點,正確看待寫業(yè)務邏輯這些代碼就行了。

堅持不懈的寫好業(yè)務邏輯代碼

就像我在上面說的: 別小瞧業(yè)務邏輯代碼,如果真正寫好,要把邏輯寫得清晰簡單易用,功能健壯穩(wěn)定,性能同時達到要求的話,其實是挺難的。

所以,我們要正確看待寫業(yè)務邏輯的代碼,應該擺正心態(tài),堅持不懈的去寫,所謂量變引起質變,就是這個道理。寫業(yè)務代碼,積累代碼量,一力降十會,在積累了巨量的代碼量之后,幾乎任何所謂的有技術含量的東西都構不成挑戰(zhàn)性。當然,要想真正的通過自己寫業(yè)務代碼,寫好業(yè)務代碼還應該有接下來的這個思考。

業(yè)務邏輯代碼同樣可以玩出很多花樣

其實業(yè)務邏輯代碼一樣可以玩出很多花樣,而這才是能夠提升你能力的本質。比如:你寫了一個處理單任務的業(yè)務邏輯,雖然滿足了用戶的需求,但是你這時能不能對自己有一個更高的要求呢?單任務雖然是功能實現(xiàn)了,但是效率可能不行,處理慢,那搞個多任務處理的邏輯怎么樣?任務池、線程池、內存池、并發(fā)、同步等等這些技術點都來了。如果你對自己有這樣的要求,而你自己有追求的話,就會進一步思考如何去做到這些,你做到了,你能力就提升了。

同樣,很多人感覺處理業(yè)務邏輯,就是一些各種循環(huán),條件判斷,只要邏輯稍微嚴謹點,功能就都沒問題,就都實現(xiàn)了,確實是這樣的。這就是你對于業(yè)務邏輯沒有興趣的根點所在。

那你為什么不想想: 如何使用循環(huán)和條件判斷可以提升效率呢?滿足了功能的那些需求,是不是有些地方可以優(yōu)化一下呢?是不是可以提升一下性能呢?

其實,這個技術的進步和積累,就在于自己內心對自己有沒有更高的要求和追求。這是大實話,也是大白話。很多人就感覺只要實現(xiàn)了功能需求就夠了,滿足了用戶就行了。然后,這個項目完事了,下個項目遇到差不多的邏輯,還是這么處理,又完事了,每個項目,每個功能都是這樣重復的處理,從來不思考最優(yōu)的實現(xiàn)方式,你感覺能夠進步嗎?你能不煩氣嗎?十年如一日的工作,10 年也就積累了一年的工作經驗,在重復使用。

業(yè)務邏輯的最優(yōu)方式,就是思考如何大道至簡

通過一個業(yè)務邏輯實現(xiàn)一個功能,基本上只要是程序員,腦子不笨,都能做出來,做出來是一回事,但是做好是另外一回事。大道至簡,我們要做就得想辦法做到最好。這里的好有很多層意思。

比如: 你寫的業(yè)務邏輯代碼 是否能夠做到準確,穩(wěn)定,高效,易讀,易擴展,易維護,兼容性強呢? 問自己一句,如果你能做到這些,那確實是好。如果做不到,你還是處理初級水平,當然不行,這就是你在工作中提升能力的機會。別說沒時間,都是借口。

精益求精是對代碼大道至簡的永恒的追求,也是我們在處理業(yè)務邏輯代碼中不斷提高自己能力的過程。

明明自己水平初級,就容易驕傲自滿,感覺可以了,我想學更高的技術,那么更高的技術是自己在處理業(yè)務邏輯中一步一步積累出來的,不是干了初級的活,不用積累,直接學高級的技術,就能高級了。

我特別喜歡網上有個網友寫的一段話:

其實很多技術大牛和技術專家,都是從業(yè)務邏輯做起,慢慢積累思考起來的。比如:在處理業(yè)務邏輯之前,會思考如何設計這個架構,可以讓代碼更好的擴展和維護。在處理業(yè)務邏輯的時候,思考如何的處理才能提高性能和效率?一步一步的實驗和總結,積累,才成就了今天的成績。

所以,不要對處理業(yè)務邏輯嗤之以鼻,不要以為能夠滿足需求就夠了。你重復不思考的粘貼和復制肯定是不行的,必然會對編程失去興趣,自然無法更好的成長和進步。應該在編程的過程中追求更高的要求,尋找更高的興趣,這樣才能讓你持續(xù)進步,從而進階。

林子大了什么鳥都有,不知道你說的有人是指多少比例的人。我的理解代碼可以分為兩類:1:工具欄或者框架類2:業(yè)務類。寫工具類偏重于健壯可拓展可復用;寫業(yè)務類偏重于邏輯嚴謹沒有漏洞,化繁為簡。畢竟有些時候需求或者業(yè)務都不甚清楚他們想要的邏輯。有時候復雜的業(yè)務流程你捋都不順,更別說代碼寫的好了。當然,工具類到高深,工具好用,框架優(yōu)秀確實需要的技術功底深厚,比業(yè)務類要考慮的東西也多,但不代表寫業(yè)務類代碼很low。當然,不管寫什么代碼,完全復制黏貼而不去考慮與實際場景結合,不去想為什么?有沒有更好的處理方案是比較low的

天天給我講技術棧,讓你這個業(yè)務代碼,半個月搞不定,然后又bug一大堆。業(yè)務代碼培養(yǎng)人的邏輯思維和全局控制,這個是基礎沒有捷徑。至于技術,外面一大堆,看你怎么選擇。

網頁名稱:Java只會寫業(yè)務代碼 java只會寫業(yè)務代碼怎么辦
文章分享:http://muchs.cn/article12/dohcjgc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網站App設計、移動網站建設響應式網站、搜索引擎優(yōu)化做網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設公司