In the past, assembly code written by developers was lightweight and fast. If you are lucky, they can hire someone to help you finish typing the code if you have a good budget. If you're in a bad mood, you can only do complex input work on your own.
Now, developers work with team members on different continents, who use languages in different character sets, and worse, some team members may use different versions of the compiler. Some code is new, some are created from many years ago, and the source code is not available anymore. Therefore, in order to become a programmer, we must have the team spirit and hard-working beliefs.
Here we come to sort out the 15 kinds of technology that are changing basic development work. These technologies change how we work with other team members, how we communicate with our customers, and how we program.
1, continuous integration (Continuous integration)
When the code is submitted to the library, you have enough time to take a break, have a cup of coffee, or even have a lunch. At this point, the codebase is already bundled with a running compilation system, starting to recompile your submitted code, double-check your code structure, initialize multiple test programs, and mark up any issues in your code. Within 5 feet of your desk, the compilation system sends the fixes to your phone via email or SMS. Back to work, the continuous operation of the compiler system has new tasks for you.
2, architecture (Frameworks)
It is nothing new to stand on the shoulders of giants by copying someone else's work, but the advantages have never been as obvious as they are now. Now only a small amount of programming work is to start from scratch. The best and most controversial approach to development is to use a good framework to study clear API, and then write your own code to use the API to complete the core functions. Web pages are no longer generated by HTML or CSS; more is to start using Ext JS, Express JS, or other code bases as a basis for coding.
Of course, you can innovate and build everything from scratch, but that's pretty painful. You have no way of keeping up with all the work others do. You are not a mechanic, just a frame mechanic. Before you plan to code yourself, take a look at the frameworks that are already in use.
3, the code base (Libraries)
And the framework is similar to the code base, the code base is ubiquitous, the programmer has been inseparable from it. Write jQuery on the browser code can not? Does anyone remember a built-in function GetElementByID? Libraries like jQuery are now used at all levels. People talk about their favorite language, but seldom talk about how they are programmed. If you want to hire some programmers, you should ask them some knowledge about the code base. Java script developers from jQuery or Dojo developed? Game developers may use C ++, but the real question is whether these developers know about Allegro, Unity, Corona, or more. Knowledge of the code base is just as important as the language itself.
4, application programming interface (APIs)
In the past, programmers always needed to focus on the data structure. They need to pack all the information into byte blocks, making sure to put the value at the correct offset. Now, the compiler has done this for us.
Now that we work on a very rigorous interface, it has an enthusiast-like name: application programming interface. It is usually on a completely different machine or running on other companies, each call requires a fee. Do you want to turn a street address and a zip code into latitude and longitude? A dedicated API interface can be called, and the cost of use is also quite cheap.
In many cases, the data does not need such a rigid package. Older byte wrapping has been replaced by a lightweight data exchange format such as JSON or XML. You need to make sure your data format is exactly right, but luckily there is a ready-made code base available.
5, Platform as a service
Who set up their own website? On the contrary, how to create a user account on someone else's website and do some customization? All that's needed is just a website so that your site can do everything you want to do, such as uploading a cat video to Youtube or bidding for a Perth drinking fountain on eBay.
Of course, this example is a little exaggerated. Many PaaS options currently require programmers to clearly know what to put on each web form. Take Microsoft's cloud service for example, and you can put functions written in a Java scripting language that describe how the site responds. The cloud service then packages these functions into a library and runs it on the js node.
6, browser (Browsers)
There was a period of time when people wrote desktop software, server software, and software running on devices, all of which were different, and different ways of delivering information between software were different. Now, all of these are using the browser. When I built a local file server at home to store music, I was able to log in to this site via a web site. Apple's desktop window program is written in Java script and hypertext markup language and has been around for years. Many cross-platform applications for mobile clients written in Hypertext Markup Language and Java Script are tied to Apache Cordova.
Of course, many applications continue to use C / S structure. The best games still use client-side mode, no browser, but as more Java script developers study drawing on canvas this is changing. For example, Angry Birds is about to run on a browser window.
7, the application container (Application containers)
Create a dedicated server to do more difficult work. Programmers can get the code from the server and then run, and send the log to the server. Sometimes you get the correct library, sometimes the resulting library is wrong, but in the end, you will find a usable code base.
Now, application containers like Docker allow us to find the right one by pressing a button. If this code base can run on our test machine, it can also run on the server. Everything is bundled together, and none of those things that are incompatible with our desktop and services do not exist.
8, infrastructure as a service (Infrastructure as a Service)
Did I mention the server curator team? These people like to go out for lunch or after get off work, but now they are all gathered in the cloud to work for companies that consider themselves leaders in the cloud world, as in a global data center. A few developers will need a service team to build a new service for their new project. They only need to log in to a site, press a button, you can get a machine for their service. It's especially easy, but these IaaS admin pages will not buy you a cup of coffee after the job is over. Of course, it can save you a lot of work.
9, Node.js and JavaScript (Node.js and JavaScript)
Web servers send static HTML before some of you are born. Later, some people began to study how to build a dynamic server that can interact with the database. Each team needs a person to write a database program in SQL, a person writing a service program in PHP or Java, and a person designing an HTML template. Once everyone starts to like AJAX and JavaScript running on the client side, this site needs someone who speaks this language.
Now Java Script does all the things. Of course, browser-based JavaScript, server-side (Node.js) and database (MongoDB and CouchDB) are the same. Even HTML is usually built on a client-side script using a framework such as Ext JS or jQueryMobile.
10, secondary market (Secondary marketplaces)
If you want to build a game, you can hire some designers yourself and create a great model collection. You can even hire some developers to add some visual effects to your game, making the game look cooler. Or you can buy all the parts you need in a secondary market like a unified resource market. As I write about it, the toolbox for constructing the sewer scene is cut by 30% and can be used to build small or large game scenes. The sale may have ended when you saw the news, and the price may have risen to $ 45. How can developers and designers have such a low price!
There is an increasing number of markets offering add-ons, libraries, and other add-ons. With so many libraries and frameworks, developers are also increasingly purchasing the parts they need, reducing their coding effort.
11, virtual machines (Virtual machines)
The era of writing large sections of code has slowly gone away. Most of the code now written for running on virtual machines is translated into instructions that the chip can recognize. Java virtual machine, C # /. Net virtual machine, the current JavaScript engine is the ultimate operating code carrier.
The popularity of virtual machines makes this area more and more attractive. In the past, if you wanted to create a new language, you needed to create the entire process from the processor to the register. Now, the new language runs on the old virtual machine. Clojure, Scala, Jython, JRuby are all involved in the development of virtual machines, which now belong to Oracle.
A similar situation also appears in the browser area. So that you can create your own browser and language, you can also simulate in Java by spread compile. Many new scripting languages do the same thing now. Google's Web Toolkit also has a similar feature: converting Jave language to Java script.
12, social media website (Social media portals)
In the early days of the internet, you could build up your own website and pray that people could find it. They need to remember your website.
More and more sites are attracted to the Internet world, the emergence of a large number of social networking sites and marketing sites. If you set up your own website, it is likely to be out of your door, and most users browse and click on social networking sites and marketing websites. The solution to this problem is to build an application for a social networking site or sales website that can be accessed and integrated into these sites. But in the end, your application is only a vassal, will be subject to many restrictions, it is likely to be easily stopped. Do you have other options? No, you either choose to be a vassal of a large website, the door can only accept the reality of deserted.
13, development tools (Devops tools)
Long ago, we just needed to install the software on a single server to meet the needs of the application. But now, we have to rent a large number of servers, tens, hundreds, and even thousands of machines, many of which need to be configured according to demand. It is not a work that can be done by hand.
Into the operation and maintenance mode, there will be some tools like Chef and Puppet to help you complete these complex tasks. Push software to the cloud, under the control of these tools, to ensure that all machines run the same code. These tools automatically complete our previous work on a single machine.
There are services such as Google App Engine that handle this internally, all you need to do is tell your app to the engine and authorize it to get started. You do not even know what's going on in the background, all you can see is CPU usage.
14, GitHub, SourceForge and code sharing (GitHub, SourceForge, and social code sharing)
Code-sharing sites may be the biggest contributor to the open source world. Prior to SourceForge, the software was created on your machine and the code belongs to you only. If other people want to get the source code, they need to find you to get the source code, of course, you must get your unity.
Now code sharing has become a consensus. Sites like SourceForge and GitHub have posted all the code for everyone to read and update. They provide an easy-to-access place for code maintenance, sharing, and commenting. You can read these codes through an entry, and suggest changes. Many projects may have scores of tens or even millions of downloads per week, which was not possible before.
This model is very advantageous, many self-employed projects use this model. GitHub and BitBucket These sites are also to some extent support for the sale of their own development of the code base.
15, performance monitoring (Performance monitoring)
Earlier, tracking code performance was a very easy task. Print a time at the beginning of code execution, and then print a time at the end of execution. If you want, you can also make a difference between these two times and print it out. Many problems can not be exposed on one machine. Attaching a parser to your code may not reveal the real bottleneck that could be due to some in-house complex problem or database latency. Now tools to test network performance not only test the software itself, but also test every module in the software. This is the only way to know if your internal operations are working properly. When a program evolves from running on one machine to being connected to another via a network, it is a very important way to determine if the program is working properly.
Original link: http://code.csdn.net/news/2821358