The path for. net programmers to transform Java and the path for. net to transform java

Source: Internet
Author: User

The path for. net programmers to transform Java and the path for. net to transform java

After graduating from college, I entered a foreign company to develop the enterprise's CRM system. At that time, the most efficient advanced programming language was developed, without a doubt, C #. At the same time, the company is also expanding, recruiting many. net programmers. As a fresh graduate, I also happily joined the. net programmer ranks.

C #. net is very easy to use. I have worked in winform and webform development in college, and I have undertaken small projects with my teachers to earn extra money. As a result, I am familiar with my job and can easily get started with the Enterprise Development Framework. In just over a year, I became the company's founder (jia) hair (ban) bone (feng) (xian ).

C #. net's online evaluation is worse than Java. I once saw an article by Chinese programmers outside China on zhihu. The content is mainly about a leisurely and non-Overtime life abroad. The last sentence is: "I forgot to say I did it.. net. In zhihu programmers, writing Java, python, go, and JavaScript is almost politically correct. net programmers are rarely active in related discussions, but their impressions on java have changed. At that time, my Foreign Company was still using C #. net on a large scale, so I refused to accept the noisy voice on the internet, concentrate on writing code, and learn the design mode and front-end technology.

As the Internet industry is gaining momentum, I naturally joined a slightly larger Internet company, and of course I still wrote C #. Since I have worked hard in foreign companies, and I am willing to take over everything, I have accumulated a lot of useful R & D knowledge and experience. So when I change jobs, I feel comfortable. What do people ask, I can answer this question, so I joined a new company relatively easily and started the Internet R & D path. It is precisely with my own eyes that the Internet R & D model has led the author to determine the decision to transform Java.

The new company's framework was outdated and was still in use. net framework2.0, the Business Code is very complex and huge. There are more than one thousand lines of code in a ten-year business project. Reading code alone makes me tired, more importantly, the method names of these one thousand lines of code are actually called "facade )...... It is hard to imagine that the company's core business is running in so bloated code. The Internet R & D model with high performance and efficiency has finally begun to conflict with C #. net:. net framework and iis are not open-source. The system encountered the following problems during operation:

1. The access efficiency of the interface service project encounters a bottleneck. Basically, the Server Load balancer can only be used to add machines.

2. In some large projects, dozens of machines are required to carry daily access, making O & M more difficult (continuous integration and smooth release in the future, making O & M much easier ).

3. In a few cases, the system may have some difficult issues. When the problematic code is in the closed source toolkit, the debugging staff are almost helpless. (The decompiled code is really ugly ......)

4. Increasing machines and costs are not just machine costs. People are not open-source, and fees are not cheap ......

5. Poor customization. In some extreme scenarios, we hope that programs can consume server hardware resources to a greater extent, while server programs are owned by others. People have set the "best threshold" for security, it is difficult to further squeeze server resources.

6. Lack of open-source community support and weak big data-related R & D ......

7. Some Internet companies in China do not provide C # sdks for open platforms ...... (Write your own SDK according to the http request)

And so on.

 

Turn to Java.

The pain points of technological transformation are inevitable. The interface R & D and background management system R & D in the company are separated by different personnel. There are not many people who can develop interfaces and background systems at the same time. The author's technical system is relatively complete and has gained a lot of respect from the team. I personally brought my team to do R & D, wrote the interface, and brought my brother to study the ckeditor source code and made custom modifications. I was so busy. However, turning Java into my heart disease at the time: My job is doing well, and the team will not be allowed to rashly switch to the Java technology stack. I have been studying it for a long time in private, but cannot directly practice on the project. It is a pity.

The author finally waited for a chance to become the main programmer of the company's new project, responsible for the back-end architecture, design and R & D of the entire project. There are not many new project personnel, but they are all excellent talents in various technologies, including ios, Android, and H5 R & D personnel. The author provides them with interfaces and develops background management systems for products and operation colleagues.

Independently responsible for design and R & D. Despite the large workload, the degree of freedom is much greater, so I decided to use Java to complete the entire development task. The project leader has a high degree of trust in the author's technical skills. However, he still hopes that the team will use C #. net to pursue stability. However, as long as I insist on it, I agree. In order to reduce the risks and progress of technological transformation on new projects, the author made some compromises: With Java R & D Interface services, the background management system still uses C #. net.

During interface R & D, I had a lot of pains, and the problems of building the project framework emerged one after another. Due to the inskillful use of spring, errors are often reported at the framework layer. The seat of the new project is different from that of the company's Java Development Team. I have to climb several stairs every day to get the lessons from the Java Development Team. If the problem cannot be solved several times, I want to give up and use C #. net back. The project leader has seen this situation for many times and put pressure on it. I told the Project Manager zhuang (bi): "If Java is not correct, I will use C # in two days #.. net." Thanks to this persistence and tenacity, I have repeatedly been disturbing the Java R & D team. The project framework has finally been built. I have also worked out the principles of the Framework through repeated experiences, completed spring practices. Having experience in dependency inversion and control inversion programming ideas and design patterns, it is very easy to understand the design idea of the Java framework. After the framework is built, the output of Business Code is almost a cloud flow, when the project is completed, I forget that I was. net programmer. The project was successfully launched, and only two machines were used to resist high concurrency. I had more trust and love for Java.

With the. net Programming foundation, it is relatively easy to learn Java, but it must escape from several traps:

1. Pay attention to basic knowledge: C # Is a very good language. It provides syntactic sugar to make complex business expressions very elegant, with lambda expressions and linq, the basic principles of data structures are weakened in most scenarios, and data structures and algorithms are the essence of programming.

2. Desire for principles and thirst for knowledge: Using C # programming, you cannot view the methods in most Assembly sets, you can only find them on the forum or decompile them on your own, and your curiosity may gradually weaken. After writing Java, you often press ctrl + mouse to view the source code. Java is very sexy.

3. Lazy thinking is not advisable: C #. net is highly encapsulated for sorting and query of data structures such as linked list arrays. Several expressions can get the desired results, while Java expressions are not so clever. In the Java World, you can understand the principles and write your own solutions in a more efficient way.

 

Using Java to complete the development of commercial projects is only the beginning of technological transformation. It can only be counted as a step-by-step process, and cannot be considered as a successful transformation. I still spent a lot of time learning Java's data structure. I learned Apache's public toolkit, and occasionally clicked to see the implementation source code. I continued to learn the design mode and its application. In some projects that are easier to use C # for evaluation, I still insist on using Java. In order to have more Java project practitioners, I applied to enter the search engine R & D department, passed the technical interview of the Java team architect, and joined the long-awaited team, in the end, I can write Java for Search Engine Services. Of course, if I leave my original department, I will discard my position and honors in my old team, but I think it is worth it.

 

Over the years of development experience, I have realized that the language is intercommunication, and it never changes. To learn a new language, you only need to make up your mind and make efforts. However, the subsequent challenges are the design ideas, application of design patterns, architecture design strategies, code stack solutions, and technical selection of different functional modules. These require heavy experience, solid skills, and accumulated technical strength.

In the future, the upsurge in big data and machine learning will be in full swing. Using storm, elasticsearch, Hadoop, lucene, and other technical Java programmers will surely be able to better adapt to the trend.

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.