日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

中国第一软件开发_我第一次开发企业软件中学到的知识

發(fā)布時間:2023/11/29 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中国第一软件开发_我第一次开发企业软件中学到的知识 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

中國第一軟件開發(fā)

In this article, I’ll share ten lessons I learned from my first project as a self-taught software developer. I was working for a consulting company at the time, and my official title was Software Engineer. The project I worked on was a web application for the public sector.

在本文中,我將分享作為一個自學(xué)成才的軟件開發(fā)人員從我的第一個項目中學(xué)到的十個教訓(xùn)。 當(dāng)時我在一家咨詢公司工作,我的正式頭銜是軟件工程師。 我從事的項目是公共部門的Web應(yīng)用程序。

第1課:盡快學(xué)習(xí)架構(gòu) (Lesson 1: learn the architecture as soon as possible)

In the beginning, the most challenging part was getting used to the amount of code that was written. There must have been at least a million lines of code by the time I started! This became so much easier after learning about the architecture that we were using. I remember being confused about this at the time.

剛開始時,最具挑戰(zhàn)性的部分是習(xí)慣了所編寫的代碼量。 到我開始時,至少必須有一百萬行代碼! 在了解了我們所使用的體系結(jié)構(gòu)之后,這變得非常容易。 我記得當(dāng)時對此感到困惑。

It wasn’t until I did a crash course on layered architecture, offered by the company, that I really understood how to navigate through the code base. I got a very brief overview when I started, but I wish I had a better understanding sooner than I did.

直到我完成了公司提供的有關(guān)分層體系結(jié)構(gòu)的速成課程后,我才真正了解如何在代碼庫中導(dǎo)航。 我剛開始時獲得了非常簡短的概述,但是我希望我能比以前更快地了解。

第2課:不要在架構(gòu)上走捷徑 (Lesson 2: don’t take shortcuts with the architecture)

Half way through my time on the project, we added a lot of new functionality. We were able to do some of this with newer technology. As I still didn’t really understand the value of the architecture we were using, I decided to take shortcuts. This ended up costing time and resources when we had to go back and fix it.

在我完成項目的過程中,我們添加了許多新功能。 我們能夠使用較新的技術(shù)來做到這一點(diǎn)。 由于我仍然不太真正了解我們所使用的體系結(jié)構(gòu)的價值,因此我決定采用捷徑。 當(dāng)我們不得不回去修復(fù)它時,這浪費(fèi)了時間和資源。

第三課:不要低估業(yè)務(wù)環(huán)境的價值 (Lesson 3: do not underestimate the value of the business context)

An important part of the project is learning the business requirements. I completely underestimated the importance of this for the whole duration of the project. This was an expensive mistake. If you don’t understand the business context of your work, it is very easy to go down the wrong path.

該項目的重要部分是學(xué)習(xí)業(yè)務(wù)需求。 我完全低估了這個在整個項目過程中的重要性。 這是一個代價高昂的錯誤。 如果您不了解工作的業(yè)務(wù)背景,那么走錯路很容易。

教訓(xùn)4:不要低估自學(xué)的價值 (Lesson 4: do not underestimate the value of being self-taught)

This project allowed me to gain a lot of confidence in my abilities as a developer. I strongly believe that, if you have the right tools, you can become an expert in anything.

這個項目使我對自己作為開發(fā)人員的能力充滿了信心。 我堅信,如果您擁有正確的工具,則可以成為任何事物的專家。

While I’m not claiming to be an expert, my self-taught learning material was more than enough to prepare me for this project. Keep in mind — the list was much shorter back when I started! This revelation inspired me to write Was studying worth it?

雖然我并沒有聲稱自己是專家,但我自學(xué)的學(xué)習(xí)材料足以讓我為這個項目做準(zhǔn)備。 請記住-當(dāng)我開始時,列表要短得多! 這個啟示啟發(fā)了我寫這篇文章值得學(xué)習(xí)嗎?

第5課:編寫快速的測試,并刪除過時的測試 (Lesson 5: write tests that are fast, and delete those that become obsolete)

Our project consisted of many tests. We had an autonomous test suite that ran unit tests, persistence tests, and integration tests. The unit tests took a few minutes to run, but all of them together took a whole hour! I realized that quick tests are best, and there’s no point in hanging on to old tests that are obsolete.

我們的項目包括許多測試。 我們有一個自治的測試套件,可以運(yùn)行單元測試,持久性測試和集成測試。 單元測試需要花費(fèi)幾分鐘的時間,但是所有這些一起花費(fèi)了一個小時! 我意識到快速測試是最好的,并且沒有必要繼續(xù)使用過時的舊測試。

第六課:提防少做的后果 (Lesson 6: be wary of the consequences of committing less often)

We were using Subversion for our version control. Unfortunately, the code we were committing was automatically checked in to the repository. We very rarely worked with branches, as the opportunity cost seemed to be too high. This led to committing code less often. I still tried to commit frequently, but I would sometimes break the build — I didn’t think I needed to invest the hour running the tests locally.

我們使用Subversion進(jìn)行版本控制。 不幸的是,我們提交的代碼已自動簽入存儲庫。 我們很少與分支機(jī)構(gòu)合作,因為機(jī)會成本似乎太高了。 這導(dǎo)致提交代碼的頻率降低。 我仍然嘗試頻繁提交,但有時會中斷構(gòu)建-我認(rèn)為我不需要花費(fèi)時間在本地運(yùn)行測試。

第7課:編寫可靠的測試-不要忘記維護(hù)它們 (Lessons 7: write reliable tests — and don’t forget to maintain them)

On top of that, some tests were not always green. They would work sometimes, but they would fail just as often. This would cause the build to be red. As a result, I didn’t really appreciate the value of a red build. Sometimes the build would be red for days because someone didn’t notice that another test had been broken.

最重要的是,某些測試并不總是綠色的。 它們有時會起作用,但它們也會經(jīng)常失敗。 這將導(dǎo)致構(gòu)建為紅色。 結(jié)果,我并不真正欣賞紅色版本的價值。 有時,由于有人沒有注意到另一個測試已被破壞,所以構(gòu)建會持續(xù)幾天的時間是紅色的。

第8課:盡快檢查代碼 (Lesson 8: review the code as soon as possible)

Typically, we would have one developer writing the code and another developer reviewing the code. I had opportunities to do both. Often, I would get a feature to develop. Before finishing it, I would be given something to review. It might take days before I got around to reviewing.

通常,我們會讓一名開發(fā)人員編寫代碼,而讓另一名開發(fā)人員查看代碼。 我有機(jī)會做這兩個。 通常,我會開發(fā)一個功能。 在完成之前,我將得到一些回顧。 我可能需要幾天才能進(jìn)行審核。

This often caused headaches, because the code I was reviewing was not the same as the code that had been developed. Pair programming would have avoided this problem, but that was not the way we worked.

這經(jīng)常引起頭痛,因為我正在查看的代碼與開發(fā)的代碼不同。 結(jié)對編程可以避免這個問題,但是那不是我們的工作方式。

第9課:重構(gòu)應(yīng)伴隨測試 (Lesson 9: refactoring should be accompanied by tests)

Tests were only introduced five years into the project’s lifespan. Before that, all the testing was done manually. This meant that a lot of the code base didn’t have any test coverage, which is dangerous.

測試僅在項目壽命的五年內(nèi)進(jìn)行。 在此之前,所有測試都是手動完成的。 這意味著很多代碼庫沒有任何測試范圍,這很危險。

Personally, I really like the idea of applying the boy scout rule to code. I naturally tended to refactor a lot. But as we didn’t have test coverage for everything that I refactored, I would sometimes introduce defects into our software.

就個人而言,我真的很喜歡將童子軍規(guī)則應(yīng)用于代碼的想法。 我自然傾向于重構(gòu)很多。 但是由于我們沒有對重構(gòu)的所有內(nèi)容進(jìn)行測試,因此有時會在軟件中引入缺陷。

第10課:開發(fā)軟件是業(yè)務(wù)價值和卓越軟件之間的折衷方案 (Lesson 10: developing software is a compromise between business value and software excellence)

We used a V-model for the software development process. This included deadlines for developing, manually testing, and releasing the software. We didn’t have unlimited time to develop or review the code we were writing. In some cases, I would spend too much time perfecting the code, which wouldn’t always deliver business value.

我們在軟件開發(fā)過程中使用了V模型 。 這包括開發(fā),手動測試和發(fā)布軟件的截止日期。 我們沒有無限的時間來開發(fā)或?qū)彶槲覀冋诰帉懙拇a。 在某些情況下,我會花太多時間來完善代碼,而這并不總是能帶來業(yè)務(wù)價值。

最后的想法 (Final thoughts)

This project was a very valuable learning experience for me. I hope you were also able to learn something from it. Let me know in the comments below if you had any similar or contrasting experiences!

這個項目對我來說是非常寶貴的學(xué)習(xí)經(jīng)驗。 希望您也能從中學(xué)到一些東西。 如果您有任何相似或?qū)Ρ鹊慕?jīng)歷,請在下面的評論中告訴我!



Before you go… Thanks for reading the article! I write about my professional and educational experiences as a self-taught software developer, so check out my blog or subscribe to my newsletter for more content.

開始之前……感謝您閱讀本文! 我寫的是自學(xué)成才的軟件開發(fā)人員的專業(yè)和教育經(jīng)歷,因此請查看我的博客或訂閱新聞通訊以獲取更多內(nèi)容。

You might also like:

您可能還喜歡:

  • Learning material — software development (my learning path starting with Intro to Computer Science)

    學(xué)習(xí)資料-軟件開發(fā) (我的學(xué)習(xí)路徑從計算機(jī)科學(xué)概論開始)

  • Testing Apollo Server with Typescript

    使用Typescript測試Apollo服務(wù)器

  • Was studying worth it?

    學(xué)習(xí)值得嗎?

翻譯自: https://www.freecodecamp.org/news/what-i-learned-by-developing-enterprise-software-for-the-first-time-d630481ce6eb/

中國第一軟件開發(fā)

總結(jié)

以上是生活随笔為你收集整理的中国第一软件开发_我第一次开发企业软件中学到的知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。