How can I become an excellent software developer?

zhaozj2021-02-17  59

How can I become an excellent software developer? (Translator's Note: The original is for BCBer, but in fact described herein are applicable to all Programmer, a programming language specific to little, so the translation so ...) Author: Unknown Source: Unknown English Posted: Bird1945 ★ Introduction: How can someone have to be a good C Builder developer for some suggestions. In more than 20 years of career, I use the programming language from IBM 360 compilation, Pick Basic, Modula 2 to C, C , Icon, Used operating system from MVS, UNIX, Amiga OS to DOS, Windows, Win95 And a variety of database management systems, created products are applied to manufacturing, insurance and GIS fields. Over the years, I have been involved in many kinds of technical fields, and I have also obtained a lot of knowledge accumulation, they have the help of me with "moisturizing thin silent". I hope they will be useful to you. For the readers of this article, I assume that you at least understand some of C , C Builder, inherit, data, and program abstraction, relational database, ER and some basic programming knowledge. But you can learn which knowledge you can learn in other books in this article, while also mentioning some reference bookings and authors. First of all, you have to know that as a software developer, multi-faceted, multi-level experience is very important to your improvement. Smalltalk (Translator Note: The language widely used in the early 1980s has set off a "object-oriented sports", which is born with language-oriented C, C , Eiffel and CLOS and other languages ​​and other language) and icon can improve your C ability; object-oriented Lisp language and Self Programmer's (?) Are beneficial to your use inheritance and components; multiple software development methods can not only help you make better design, but also make you learn To many designs reuse; extensively understand the different procedures for different operating systems (especially those classic examples) that enable your software products to get more users. Second, you have to remember that as a software developer, customer demand is critical to you, although customers you have to face are often difficult. This is true when you develop a small range of systems that use a small range. You have to be sure that you understand the customer's needs, and if you want to develop the system to be applied to our customers' daily work, you have to develop something that meets customer needs, you must be very clear about their purpose. Their handling method and limitations - from the long run, this is the only way for your profit. In the last point, you have to love your work. For her, you have to love treasures, and sometimes wipe it, she will have a delicate design, essence, well-perceived database system, excellent performance, and simultaneously have the maximum degree of simple, refined, productization And the most likely to reuse resources that include code, components, procedures, and designs. ★ Suggestions: To become a BCB software development, you must always remember - you are a software developer, not just a programmer. That is to say, what you have to consider, not just how to write outstanding code! You also have to consider how to do software, database, and user interface, the reusability and maintainability of the final product. Of course, you should also have a quite understanding of business environment for business environments such as products. In my opinion, excellent software developers can always maintain his global awareness in the case of the project size and exceeding the pre-planning.

But in this case, the only possible way is that developers develop a better reusable software module on the basis of the previous software module, even when you think that you can make a certain module to be reusable. Need to be in real time only if the short-term goals it run, no exception. I hope that your experience in C language will make you better understand this. My guidelines are: If you use a similar part in your coding more than three times, I think you should abstract and reuse these parts. This is also applicable in BCB, of course, if the reuse spacing is likely to be large. (★ Translator Note ★ - The following text Please refer to the knowledge of related modeling technology!) Specific to BCB, there are many levels of reusability, knowing that they are beneficial to you. Maximize your existing resources. I mean, you have to figure out the mechanism of the VCL component as much as possible, and you have to try to use the new method to apply these to solve your actual problem. Understand the properties provided by the VCL and it can also be excavated. Never create a method in the case where you can solve the problem just to set up a property - remember, especially in the BCB, an aspect of object-oriented ideas is working hard to do it: less process coding And the control structure, and try to achieve the properties of the object. To learn about the application of VCL components in BCB, recommend you to see this book, Miano's "C Builder How-To" (ISBN 1-57169-109-x). Develop new components if necessary. My so-called "things that are three" rules must be used in the field. If you find that you set a component more than three times in the same way, I think you should consider making it a new component. Analyze the existing components, inherit, and its closest components, only add something you need to use. Because this is just single inheritance, you can't add other functions through the binding, but you should consider trying to make it inheritable later. When developing new components, try to create more interfaces and properties instead of methods. Learning attributes and component editors and knows how they simplify your work when you create new components. (Related recommendations: Thorpe's "Delphi Component Design" (ISBN 0-201-46136-6)) forms your own regulations as early as possible. The "Three" rules is formed on this section - forming its own regulations as early as possible. This is explained: Do not change (/ FAINT) not only to change. Sticking with a good job, only this, you may have enough time to understand it in detail, so you know if you can use it to give you better features. On the other hand, if this road leads to a wall, then I think you'd better look for it. (Translator Note: RUT is also a rut, and is interested in choosing a suitable component mode. Still, pay attention to "Three things". Your component contains the components that are often mentioned - such as a CHECKBOX that comes and a COMBO's content is used? If so, you can do a aggregated component. (Get more related materials for more aggregation components, you can also see "Creating An Aggregate Component With Streamable Sub-Components", there are also many useful information in "Custom Delphi 3 Components" (ISBN 1-57610-112-6) (ISBN 1-57610-112-6). Suitable design pattern. Following "Three Rules", use the RUT rules mentioned earlier, try to do design part reuse.

When you create a design framework, you first try to find a set of components that can implement your requirements, and try if you are abstract out, you need to use attributes instead of being coded in it. Create a model, and this model can be reused in your system else or your next system. There are many books in object-oriented programming, most of which have this knowledge from this area comes from the Contributions issued by ACM (American Computer Society) and OOPSLA (Object-Oriented Program - System, Language, Application Software). And the documents such as journal, of course, you can also find some other good books. However, I strongly recommend that you can join the ACM (this suggestion is also the most beneficial suggestion I have since started with the career). If you join, you can be a member of the following special interest groups (SIGPLAN: programming language; Sigchi: computer knowledge exchange; Sigsoft: Software Engineering), you can request an Journal of OOPSLA, SIGCHI and other organizations and UIST's conferencing, you will have a chance Get the previously published journal documents, and these documents are worth reading, and can learn about programming skills, patterns, user interface design. Select the appropriate application mode. Many applications have a great part, so you can create a core system that contains these universal parts, and then perform corresponding improvements on this basic software model to meet demand. For more information on this, see "Reusing your entire software system". (★ Translator Note ★ - The following is the author's recommendations for program interface design) as a BCB developer, you must also fully realize the factors in the program user interface, you must also know how to make Your product interface is easy to use and can not be eliminated in a considerable period of design. Confident, you understand the customer's needs. In the system design, ask "This is to solve something problem?" Or "What function does you need it?" And so on. Don't let users design the user interface for you. If the customer is saying "What is it in this, what kind of interface design, etc., try to use the above question to let him return to the front path. You are familiar with tools and techniques for designing a good user interface, and what you have to do is converting all the needs of our customers into an abstract interface that meets all the needs, rather than creating a user interface for each task. Simplify your system interface as much as possible. The more complicated your application, the more difficult it is, but the more important it is. In the interface design, the components that are often used are always visible, and less useful components do not need this. You know, people can have better work efficiency at the same moment, and these should not need to deliberately remember, and should make users easily identify the open. In the case of necessary cases, the interface can be designed to be more complicated. You must ensure that the components must be not forgotten or hide. Keep the interface style. There should be no difference in the interface that achieves different functions. Complete similar features should be used in the interface that should be used, providing similar functional controls should also be consistent, allowing users to operate on their intuition. Capture and handle possible errors as possible. I am very harsh process, "Alpha Value In Numeric Field" or this type of error message - the system should not allow me to enter an inappropriate value here! In addition, for irrevousable operations (such as delete), it should provide a clear cancellation path before do not perform, such as "Do you really want to delete this record?"). Note the association between the various parts in each system.

For example, you can't allow users to delete an account that does not have orders, still in the raw material list, there are still doctors who have not redistributed by patients - unless you get orders withdrawn, the raw material single is a waste, the patient is reassigned. Keep overall balanced harmony. Important parts in the interface should be bigger, the secondary selectivity appears or placed on the TAB page so that it can be accessed but there is no appearance. Make sure your software is neat, each control is arranged neat and harmonious, just like a pleasing picture. Learn graphic design, layout technology and apply to interface design. If possible, try to use the fonts and colors provided by the system without too much fancy. The relevant part should be put together. Ensure that those parts that are often used simultaneously are placed together. Customers should quickly find the required parts without hand. Isolation is a control that may generate hazardous operations. These controls cannot be placed together with frequently used controls. If the user misses the database, hey, the user will definitely bite tooth clad teeth, I believe that you will not excerades. Use mode, but avoid using it. Yes, this sounds a bit contradictory. Mode may bring a lot of problems. Suppose such a scene: You think that some operations have been made to be selected, unfortunately, you finally discover the current delete mode! Oh, Scorpio, what will you think? So, try to avoid using mode to switch in your system, this is easy to do more than what you imagine. There is new, refined, and no mode switching - so you will design the most easy to use the program interface in the world! You can operate it at any time, and in (most cases), you will return to its initial mode it should have. Of course, it is undeniable that some mode switches allow the user to contact the interface elements that can result in dangerous operations. If you use the pattern, you want to identify it as clearly as possible, while making it easy to switch, and then avoiding the confirmation to avoid errors that may result in (this item is optional to facilitate advanced users). Try to standardize your interface. I refer to the standard format of the system, such as system fonts, while using controls should also follow the relatively general standards, or use those users to understand how to operate how to operate. Allow users to change their changes as much as possible. At least the user can be allowed to change your program's window - the dialog, it is also desirable - and can record the changes you can do and can be restored next time. (★ Translator Note ★ - The following is the author's recommendation for database design) You have to be a database developer - a relational database developer. You need to read the original work of CODD and DATE and you should understand the ER map. . Data model (this article published in the ACM's conference in the ACM mentioned above), and he put forward the relationship algebra and the concept of relationship, the concept of functional dependencies, and the concept of 1NF, 2NF, 3NF, also BEYCE cooperation proposed BCNF, "laid the theoretical foundation for relational database systems", won the ACM's highest award - Tu Ling.date: C J. Date: Database Field Famous Experts, there are multi-database books .an Introduction To Database System is a name, the first edition of 1975, now seems to have been edition.) Each table should have a unique ID property, which you can specify when adding a tuple in the table. Use a value to represent this property.

Maintaining a tuple containing all tables in the database, in each tuple, the maximum ID in the table corresponding to the store; add a tuple in each table in the program, this unique ID attribute should Followed. This unique ID attribute belongs to a foreign code in any relationship. Design your database using the ER model. Take the table as an entity, contact us in the table is usually a foreign code. But sometimes contacts can also be a table that only contains two yard values ​​(occasionally three), where the code value corresponds to the two parties of this connection. Designing a relational database, understand 4nf (fourth paradigm), and put it into use. Each table should contain only those that are closely associated with the main code, and the most part of the groups stored will not be empty. In a table, if a large-range empty field, it means that there are various types of intrinsic field modes to exist. Such a table should be divided into two, one of which is a specific data table containing the public data item (the trunk portion), and the other includes various types of its inherent field, and allocates a keyword corresponding to the main dry table and the type of it. Suitable data items are given. Each value of each available value should correspond to a table. This table consists of a unique ID, a name or a description, or may contain other data items. In the data grid, if the properties in the domain are included, use a combined query so that the user selects data in the gauge of the domain table. Display the name or description statement, store the only ID in the tuple, so you can easily change its name or description without suspending some of the services of the database. In addition, you should also pay more attention to the new knowledge and new technologies that are emerging in the industry. It is best to understand that Dongdong, such as ActiveX, Object Pascal, ODBC, while you look at the relevant language, such as SmallTalk, Common Object Lisp, Icon, and other object-oriented languages ​​that get less attention. Each language has a self-contained technology and style, which is helpful to your work. ★ As for the code itself ... naming science. Name a ratio variable is "index" instead of "i", define a variable name "BillofmaterialsCompleted" instead of "bomcomp". Although this requires you to make a multi-keyboard, this is a small trouble compared with the convenience of us in the program maintenance. I hope that you should consider the content associated with it before named. For example, name you is a data module for "account", where the data table is "table", so that this program code will appear in your code: account-> table-> fieldbyname ("id") -> Asstring = Accountidedit-> text, looks very clear. Note Choosing the right naming so that this relationship stream is like a language, which is easy to understand. Use neat indent formats and spaces to ensure the provision of the block. In order to highlight, the brackets are preferably occupied separately. Select the appropriate annotation. This is especially true for those classes that are invisible and does not contain controls (there are some of them inherited from TOBJECT, and some are independent). This is a "conversion mode"). ★ Conclusion To become a good software developer, you need to have multi-faceted skills, and most of these skills come from the various projects, applications, development systems, development languages ​​and methods you have developed. learn.

All of this is impossible, you have to be patient, unremitting efforts, let the clearest, more beautiful and simple, more smooth and natural style is not only reflected on your code, but also on the interface of the program, function ... Cyberufo (Flying after the Stupid) 2001.11Cyberufo@yeah.net

Welcome to refer to ... Welcome to exchange ...

Related Posts:

http://www.9cbs.net/expert/topic/396/396668.shtm

转载请注明原文地址:https://www.9cbs.com/read-29102.html

New Post(0)