一、五个 questions:
1. Software development, such as web2.0 's rest-style architecture, the front and back end of the complete separation, but its handover, it is likely to have problems, and because of a complete separation, so there is a possibility of development of different steps of the problem, the interaction between the front and back, the development of synchronous problem how to solve.
2. How to decouple data operations, logical operations, entity operations, and so on.
3. If there is a layered decoupling effect, what is the three-tier framework.
4. How to solve the dependency redundancy problem when the large-scale modular development is over-decoupled.
5. How to weigh demand between development cost and revenue, how to judge rigid demand, pseudo demand.
6. How to design the framework and the reserved interface during the development process makes the iterations more efficient and easier to maintain.
Second, how do the words "Software" and "engineering" appear-when, where and by whom?
The software was also treated as an early toddler in the early days of the Apollo program, unlike other engineering disciplines, such as hardware engineering, and in the eyes of everyone he was like art, magic, rather than a science.
Margaret Hamilton has long believed that the invention flows the blood of art and science, although few people thought so at the time. Therefore, she is committed to the software and those inventors to strive for the legitimacy and respect, so she began to use the word "software engineering" to distinguish it from hardware and other engineering classes.
When she first used such words, everyone felt a little funny, even for a long time as a joke. They often laughed at her extreme thoughts. But in the end, the software discipline has indeed received due respect!
C. Code version management software:
1.Visual Source Safe (referred to as VSS)
Easy to learn and use is the strength of VSS, VSS uses the standard Windows interface, as long as the Microsoft product familiarity, can quickly get started. The installation and configuration of VSS is straightforward, and no external training is required for the product (it can save the company a hefty fee). As long as you refer to Microsoft's complete random document, you can quickly use the actual project. The configuration management features of VSS are relatively basic, providing version tracking capabilities for files, and for the management of build and baselines, the ability to tag VSS can provide support. VSS provides the ability to share (share), Branch (branch), and merge (merge) to support team development. VSS does not provide management functions for the process, such as controlling the flow of changes. VSS does not provide support for offsite team development. In addition, VSS can only run on Windows platforms and cannot run on other operating systems. VSS security is not high, for users of VSS, can be set on the folder unreadable, readable, readable/writable, full control of level four permissions. However, because the VSS folder is to be fully shared to the user before the user can enter, the user to the VSS folder can be deleted. This is also a relatively large drawback of VSS. VSS does not use a charge for the license, as long as VSS is installed, there is no limit to the number of users. Therefore, the cost of using VSS is lower.
2.SVN (Subversion)-Alternative and upgraded versions of CVS (Concurrent version System)
Subversion supports Linux and Windows, and more is installed under Linux. SVN server has 2 modes of operation: Standalone server and Apache. There are pros and cons to each of the 2 ways. Today's industry-rated SVN ease of use is improving. Its client/server access method allows the developer to access the latest code from any Internet access point, and its unrestricted version management Checkout (checkout: note 1) mode avoids the usual manual conflicts caused by the exclusive checkout mode, and its client tools can be used on most platforms. Similarly, SVN does not provide automatic management of the change process. In general, SVN's permissions are set to a single, unable to complete complex permissions control, but svn through the SVN root directory of the script, provides the corresponding function expansion of the interface, not only to complete the fine control of permissions, but also to complete a more personalized function. SVN is the development of source code software, no need to pay the purchase cost. Also because SVN is the development of source code software, no manufacturer to provide technical support. If you find a problem, you can usually only rely on yourself to find the information on the Internet to solve.
3.ClearCase
The installation and maintenance of ClearCase is far more complex than VSS, and it is necessary to receive specialized training to become a qualified ClearCase system administrator. ClearCase provides command-line and graphical interface operations, but the command-line functionality cannot be implemented from the ClearCase graphical interface. If the Samba service is installed on the Unix/linux server, it is relatively straightforward to directly access the source code through the client directly under Windows ClearCase. ClearCase provides the functionality supported by VSS, SVN, but does not provide change management functionality. Rational also provides ClearQuest tools to provide functionality for change management, unlike VSS, where the ClearCase backend database is a proprietary structure. ClearCase provides support for both Windows and UNIX platforms. ClearCase supports the scalability of multiple servers and multiple points through multi-point replication, and is adept at setting up complex development processes. ClearCase has an independent security management mechanism compared to SVN, and ClearCase does not have a dedicated security management mechanism, which relies on the operating system. To choose ClearCase, the cost to be considered, in addition to the cost of purchasing license, there are essential technical services costs, without Rational company's specialized technical services, it is difficult to play out the power of ClearCase. If there are ClearCase cracked software on the internet, but most of the companies that try to use it fail. In addition, for support of Web Access, the software is purchased separately for support functions for change management. Rational has been acquired by IBM, so there is a reliable after-sales service guarantee.
4.git vs. SVN comparison:
1) The applicable objects are different. Git works for developers who participate in open source projects. They are more concerned with efficiency than ease of use because of their high level. SVN is different, it is suitable for the common company development team. Easier to use.
2) The use of different occasions. Git is designed for single-project development with multiple development roles over the Internet, and SVN is suitable for the development of multiple parallel projects within the enterprise that are coordinated by the project manager.
3) The Rights Management policy is different. Git does not have strict rights management control, as long as there are accounts, you can export, import code, and even perform a fallback operation. SVN has strict rights management, which can be controlled by group and by individual for the permission of one subdirectory. Distinguish between read and write permissions. More stringent, fallback operations are not supported. Ensure that the code can always be traced.
4) Branches (branch) are not used in the same range. In Git, you can only branch the entire warehouse, and once you delete it, you can't recover it. In SVN, branch can target any subdirectory, which is essentially a copy operation. So, you can build a very many, hierarchical branch, and, when not needed to delete it, and later need as long as the checkout old SVN version can be.
5) based on the 3rd, Git is suitable for simple software projects, typically some open source projects, such as the Linux kernel, busybox, etc. Instead, SVN excels at multi-project management. For example, you can store a bsp/design document/File system/application/Automation compilation script for a mobile project in an SVN repository, or a file system that stores 5 mobile projects in one SVN. The n (number of items) * m (Number of components) warehouse must be established in Git. Only a maximum of n or M will be required in SVN.
6) Git uses a 128-bit ID as the version number, and checkout to indicate which branch, and SVN uses an incrementing serial number as the globally unique version number, more concise and easy to understand. Although you can use git tag to create some textual aliases, it is only for special versions.
7) Traceability, the typical development process of GIT is: Establish branch, develop, commit to local master, delete branch. The consequence of this is that the details of the previous modifications are lost. And doing the same thing under SVN won't lose any detail. Here is an interesting link that shows how typical git works: (with Master as the core, create new branch, delete old branch):
8) Partial update, local restore. SVN is managed by creating an. svn folder in each folder, so it's easy to implement partial updates or restores. If you only want to update some parts, SVN can be very well implemented. At the same time the code is wrong, and can be a good local restore, of course, git can also be restored through the historical version, but it is not easy to implement a partial restore.
Faster branch switching than SVN, because the branches are local. This makes git especially suitable for temporary needs, or small experiments.
can be submitted at any time when the Starbucks code is written, because each version of the snapshot (commit) is locally
There is one of the world's largest open source community--github, above can see a variety of excellent language code, to the official website language list to see that there are so many languages, and the opening ceremony of the Olympic Games only know that there are so many countries in the world
In short, the company's development team in the complex multi-project development, SVN is a better choice.
Soft worker Jobs-blog jobs