Excellent software engineers make the best use of design patterns, code Reconstruction diligent in the preparation of unit testing, and simple as a religious pursuit. In addition to these, excellent software engineers to understand the concept of 10, 10 This concept goes beyond the programming language and design, software engineers should be a broader context to understand these reasons.
Contact surface (Interfaces)
convention and template (Conventions and Templates)
lamination (Layering)
algorithm complexity (Algorithmic Complexity)
hash law (Hashing)
buffer (Caching)
concurrent (Concurrency)
cloud computation (Cloud Computing)
safe (Security)
relational database (Relational Databases)
1. Relational database (Relational Databases) relational database, because lacks the extendibility in the large-scale Web service, but quite receives veiled criticism, however, the relational database was still in near for 20 year computer technology the greatest achievement. The relational database to processes the order form, the company data aspect has the outstanding performance. Relational database’s core is by records the expression data, the record deposits in the database table, the database use query language (SQL) carries on the search and the inquiry to the data, simultaneously, the database carries on the connection to each data sheet. What the database standardized technology (normalization) says is the use correct way carries on the minute to the data to save reduces the redundancy, and speeds up the access speed.
2. Safe (Security) along with hacker’s rising with the data sensitive rise, the security becomes very important. The security is a broad concept, involves the confirmation, the authorization and the intelligence transmission. The confirmation is carries on the inspection to user’s status, like request user input password. The confirmation usually needs to unify SSL (secure socket layer) to carry on; The authorization is important in the corporate business system, particularly some work class system. Recently developed the OAuth agreement might help the Web service to be open the corresponding information to the corresponding user. Flickr then uses this way to manage the personal picture and the data access authority. Other security domain is the network fortification, this relates the operating system, the disposition and the monitoring. Not only the network danger layer on layer, any software is. Firefox is called the safest browser, still needed to issue the security patch repeatedly. Must understand each kind of latent question for yours system compilation security code.
3. How the cloud computation (Cloud Computing) did RWW recent talk about the cloud about cloud computation’s article Reaching For The Sky Through Compute Clouds to calculate changes the large-scale Web application the issue. Large-scale parallel, low cost, with fast investment market. Since parallel algorithm invention, what first welcomes is the grid computation, the grid computation is draws support from the idle tabletop computer resources to carry on the parallel computing. The most famous example is Berkley university’s SETI@home plan, this plan use idle CPU resource analysis outer space data. The financial organ also large-scale implementation grid computation carries on the risk analysis. The idle resources, J2EE platform’s rising, has welcomed the cloud computation concept in addition: Using service virtualization. Applies on demand movement, and may along with the time and the user scale, but real-time change. The cloud calculates the most vivid example is the Amazon Web service, a group may carry on the transfer through API the application, if the cloud service (EC2), uses for to save the large-scale media file the database (S3), indexing service (SimpleDB), sequence service (SQS).
4. Concurrent (Concurrency) concurrent is the place which software engineer is easiest to make mistakes, this may understand, because we have complied with the linear thought that however is concurrently important in the modern system. Concurrent is in the procedure parallel processing, the most modern programming language contains the built-in concurrent ability, in Java, what refers to is the thread. About concurrent, the most classical example is “the production/expense” the pattern, the producer production data and the duty, and puts in the work thread to expend or the execution. The concurrent complexity lies, the thread needs to visit the common data frequently, each thread has own execution sequence, but needs to visit the common data. Doug Lea once had written one most complex concurrent kind, the present was a core Java part.
5. The buffer (Caching) the buffer is indispensable to the modern Web procedure, the buffer is from the database recaption, coexisting places in the memory the data. Is high because of the database direct access’s price, brings back the data from the database and places in the buffer to visit becomes very essential. For instance, you have a website, must demonstrate that last week’s bestseller, you might place from the data the bestseller announcement disposable recaption in the buffer, but did not need when each time visited went to the database to read the data. The buffer needs the price, only then the most commonly used content only then may put in the buffer. Many modern procedures, including Facebook, depend upon one kind to be called Memcached the distributional buffer system, this system is Brad Firzpatrick when the work in the LiveJournal project develops, in Memcached use network idle memory resources establishment buffer mechanism, Memcached kind of storehouse in popular programming language, has including in Java and PHP.
6. The hash law (Hashing) the Hashing goal accelerates the access speed. If the data is the sequence memory, inquires time to be decided by the data row size. But the hash law calculates a digit to each item to take the index, under a good Hashing algorithm, the data search’s speed is the same. Except the stored datum, the hash law is also very important to the distributional system. The unified hash law (uniform hash) uses for under the cloud database environment, the minute saves the data between the different computer. The Google indexing service is this method manifestation, each URL is distributed by the hash the specific computer. The hashing function is complex, but in the modern class storehouse has the ready-made kind, more importantly, how to carry on the thin accent to the hash law to obtain the best performance.
7. The algorithm complexity (Algorithmic Complexity) about the algorithm complexity, software engineer needs to understand such several matters. First, big O mark law (big O notation); Second, you forever should not use the nesting type circulation (inside circulation a set of circulation), you should use the Hash table, the array or the sole circulation; Third, now the outstanding kind of storehouse is everywhere, we do not need to pester excessively in these storehouse potency difference, we also will later have the opportunity to carry on the thin accent; Finally, do not neglect the algorithm graceful and the performance, the compilation is compact, may read the code may let your algorithm be simpler, is cleaner.
8. The lamination (Layering) discusses the software construction with the lamination is easiest. John Lakos once had published one about the large-scale C++ system’s book. Lakos thought that the software contained the level, in the book introduced the level concept, the method was, to each software module, the module number which several it relied on may know its complex degree. Lakos believed that a good software has the Pyramid structure, i.e., the software module has layer upon layer the accumulation order of complexity, but each module itself must be simple, an outstanding software contains slightly, may duplicate the module which uses, each module has own responsibility. In a good system, between module’s dependence may not overlapping, the overall system be various modules piles up, forms a Pyramid. Lakos in software engineering’s many aspects is a pioneer, what is most famous is Refactoring (code restructuring). What code restructuring refers to, needs in the programming process to make the transformation to the code to guarantee its structure unceasingly vigorous and healthy and nimble.
9. The convention and the template (Conventions and Templates) names the convention and the foundation template is often neglected in the programming pattern, however it is possibly the most formidable method. The naming convention causes the software automation to become possibly, like, Java the Beans frame in getter and in the setter method, uses the simple naming convention. del.icio.us the website URL naming also uses the unified form, like http://del.icio.us/tag/software the user belt to all labels will be the software page. Many social networks use the simple naming, like, your name is johnsmith, then your head picture possibly names as johnsmith.jpg, but your rss polymerization document’s naming is very possible is johnsmith.xml. The naming convention also uses in the unit testing, like, the JUnit unit testing tool can identify possesses the kind which begins by test. Here said the template (templates) refers to is not C++ or in Java language constructs, what we said is some contains the variable the template document, the user may replace the variable and output the final outcome. Cold Fusion is uses one of first template’s procedures, afterward, Java used JSP to realize the template function. Apache recently was Java has developed the very easy to use general template, Velocity. PHP is in itself based on the template, because it supports the eval function.
10. The contact surface (Interfaces) in the software engineering the most important concept is a contact surface. Any software is a real system’s model. How to use the simple user interface to carry on the simulation to be very important. Many software systems walk such extreme, lacks the abstract long code, or designs excessively causes senseless complex. In the numerous software engineering books, Robert Martin writes “Agile Programming” is worth reading. About the simulation, the following methods will have the help to you. First, removes these only then the method which only then possibly will serve a need in future, the code is more concise is better. Second, do not always think that the beforehand thing is to, must be good at changing. Third, must have the patience and enjoy the process.




1 user commented in " Software engineers need to know the 10 concept "
Follow-up comment rss or Leave a TrackbackThis baby has all the control and flexability of any Lexicon and it is amazingly inexpensive. Matthias Taken
Leave A Reply