Small order...... Walking in the left-side Navigation Pane, with a long length of water, and a village after village ...... What a familiar song! Singing in the song, imagine that one day you can carry your bags and welcome the big and red apple in the distance. Sorry is the sunset, and you will go far in the glow of the sunset, pursue your dreams-beautiful. I believe everyone knows the name of this song, "Walking the quartet". The singer is Han Lei, my favorite singer. I also like the blue sky that he sang very much, hai Lanlan and I borrowed from Tian on August 1, 500. In short, I like his songs very male! Unfortunately, he does not have his CD on the market. Recently, it seems that he does not sing. I just heard that the reason why he didn't sing was that he had switched to it !! Didn't I fall in love two days ago ~~~ I found that my understanding of girls is far inferior to my understanding of computers, so I plan to buy a few books to improve my professional knowledge in love. When I entered the bookstore, I should go to the Social Science Department to find a book. As a result, my legs and stomach did not listen to the brain command, and I kidnapped my body to the front of the IT bookshelf-helpless. You have to admire the Book Art of The People's apress company-the book skin designed by the people don't need you to look for it carefully, it will jump to your eyes-black background, yellow bars, this is the combination of "Warning colors" in nature. You will know about the horse's ass. I developed a book named beginning C # objects-concept-to-code on the new book exhibition shelf. First, I was surprised, and then I couldn't help myself. What do you think! What is an object? Object! C # Is it my own business or beginning, that is to say, the title of this book is translated as "how do people who learn C # Get objects from scratch", and, you can also learn from concepts to implementations! Wow, Thais ...... Let's take a look. The translator has the name of Han Lei! The sky seems to have seen the glory of my God ...... (Audio! Light! Start !) I really want to start reading it all at once, so I picked up one and rushed to my house. When I got to the door, I heard an alarm. The guard girl smiled and said to me: xianmiao, the cashier's desk is there ~~
BodyLet's get started. Some time ago, I wrote a series of articles titled "deep dive into things xx", mainly explaining some knowledge about the C # language itself. The series is not complete, so I have the opportunity to continue writing. This series of "using C # To get objects" is mainly used to explain how to use the C # And UML languages for Object-Oriented (Object Oriented, OO) requirement Analysis, modeling, and development. For this topic, my own level is not high enough, so I chose a book as the learning outline, the book beginning C # objects-concepts to Code mentioned above. In fact, it doesn't matter which book you choose. What matters is how much effort you spend on learning and mining. This book is very comfortable to read, not simple, and not difficult. It is just a step from the simple C # language to the advanced design pattern. It is strongly recommended that students at school can read this book. The object-oriented concept is definitely not a new technology. Now I am a beginner who knows the word, so we assume that the number of people who know the word "Object-Oriented" is 100%. Then, when you ask everyone to explain "What Is Object-Oriented", some people cannot answer the question or answer the question incorrectly, for the time being, we can calculate by 80% of the respondents (in fact, 50% is good ). Next, let's let these correct people use a language familiar to them to implement the three basic characteristics of object-oriented (custom class, inheritance, polymorphism ), at least 50% of people are dumbfounded. So far, most of the mistakes have been made by students or people with no work experience. The latter is the PK between professionals. If you ask a professional to use his technology to write encapsulation, inheritance, and polymorphism, he will think that you are insulting his IQ, therefore, during the interview, I will select an actual scenario for experienced interviewers, let the interviewer abstract some classes with their own eyes, and then determine the relationship between classes and the message stream between them. At this time, regular Army and amateurs who have studied UML and design pattern are immediately separated-people who have studied UML/DP, the program architecture will be very clear and stable (at least 10 minutes is commensurate with the time given to him), and amateurs may write you a very large, almost all-encompassing class, or the functions of the class are repeated ...... We can use this level to calculate 50%. Last question: Which DP are used in your previous projects? The result is frustrating-some brothers with good theories do not use UML/DP in engineering practice at all. The reasons they give me are as follows: 1, which is difficult to use, I feel that a small piece of software is not worth the effort. 2. The boss won't let me know that it will delay the construction period. 3. I am afraid that my UML/dp level will not be enough, do not dare to use it indiscriminately, so I chose the safest (and the most dangerous) method-no. The number of people stuck in the last step is 50%. OK. Now let's calculate the percentage of qualified software engineers in China: 100% x 80% x 50% x 50% = 50%. That is to say, we are optimistic that we only have one tenth of qualified software engineers, or, about 90% of our software people are working on potential problems (except for some non-oo programmers, such as C and Assembler ). In addition, the above calculation is only an "optimistic" estimate, and the actual interview is much worse. I used to do business and felt that it was really hard to earn some money from others. Now I am working on HR, but no one can get it with a lot of offers in my hand-I can't think of it as hard to send money to people!
Where is the problem?I think the problem lies in the ethos of Chinese software-there is no good idea of developing software using UML/DP. Without this ethos, the master doesn't need it, and the apprentice does not need it either. The master doesn't need it after becoming a manager on his own portal, the following employees naturally do not need to use them (and most senior executives of software companies have come from the non-oo era and do not have a deep understanding of OO advantages ). Here is an example. In China, software cannot be sold. The biggest part of the software cost is not the hardware investment, but the programmer's salary. Generally, a medium-sized software (such as software in the automotive, chemical, and pharmaceutical industries), apart from hardware, workstations, water and electricity, can make a maximum gross profit of 0.1 million yuan. If a programmer is in Beijing, he will get 4000 yuan a month ~ 5000. Let's calculate it by 4000. Generally, medium-sized software is done by about five programmers. The monthly salary is 20 thousand, and the requirement analysis, development, testing, and modification are done for two months, the cost of 40 thousand Yuan has evaporated. You can't guarantee that there will be another job immediately after this job is done. Even if we wait for half a month, another 10 thousand will evaporate. Don't forget, the customer hasn't given you the money yet! Money to get the hand, the pure profit calculated, the knife in the hands of the marketing department has been very bright, waiting for the Commission: p then you ask the boss to say: let's use UML/dp for project analysis. It will be easier to upgrade later, and the reusability of other project codes and libraries will be high ...... Boss: "How long does it take to increase ?" You: "One month", boss: "Take my kitchen knife !!" You: "Sorry !!!......" Alas, I think about how Yang Xiu died-it's not just a constant "base class" or "base class" where Cao chengxiang is forced to make Oo, and the result is a fire. OO will not be used. Let's see how the programmers write this program. In general, such a program will be a MIS system. If you use oo/DP, it may be a 3-layer or N-layer architecture software, isn't it time to abstract OO? OK, let's press the function. A button corresponds to a function. This is all right. I don't want to write three layers, but I can write two layers: in button1, you need to connect to the database. In this case, connect an SQL statement and put it in the event processing function of button1 ...... Button2 also needs to connect to the database. Well, it's the same ...... Button3 is needed, too. It's a bit messy and easy to handle! Move the connection to the form level to become a member of the Form class! OK. The problem is solved! Change the event processing functions of button1 and button2 ...... Button4 uses a dataset. He yelled at me. He learned how to declare a dataset at the form level ...... Button5, haha, the number of data that is declared when button4 is used. It's smart! Button6, oh ~~ It seems that you want to use that dataset, but you need to adjust the internal structure of the dataset ...... What can I do? Do not name a new dataset-but the name will be messy. Alas ...... Forget it. You don't need to use a form-level dataset. Let's wait for each button processing function. Changed all the functions of button4 and button5 ............ Many of our programs are developed in this way. If you ask them-are you using OO? They will also confidently tell you: use it! You didn't see that our forms are all classes, our event handlers are all member methods, and we have many "exquisite" member variables ??!! My God, what is OO ?! This is the minimum oo required by the language itself. If there is no such link, the program cannot be started-not you are using OO, but the program is using OO. Your program is nothing more than a functional (process) program with an OO coat. Your "Form class" is essentially a package. Your member methods (event handler functions) are nothing more than subfunctions called by the mian method, your "exquisite" member variables are still the idea of global variables ......
Let's talk about OO + dp -- How to Learn ooIn fact, using OO and DP in software work is far less difficult than we think. Oo analysis (OOA), OO design (OOD) and OO testing (OOT) the total time will never exceed the debug time in a pile of messy functions (usually called "Pasta" programs)-What's more, there is room for reuse of your software, what makes it easier for you to "get money everywhere after one compilation? However, there are two cases except: 1. The software you write is very small, as small as a hundred lines of code. Do I often write such small software in my daily work? To solve a specific small problem, you can use it. Originally, why can't I take a flight from deshengmen to the ground? P2. you plan to make a "one-click sale" with the customer ". I will not play with you any more, and I will not update or expand it any more. Such a program can be written at will, but is your company's future ...... You can do it yourself. Oo is also good for the boss. It doesn't make your product more complex, but make your product more stable and shorter in the future, and you save more money. Okay, so a new question is: as a newbie, how should I learn object-oriented programming? I will try to answer this question, and it is not necessarily correct (my level itself is equivalent to a frog in the teapot) and not suitable for you (You and I are two different examples of human beings, parameter elements are differentiated ). There must be a lot of bricks behind the article. After reading the article and looking at the bricks, you will have a complete understanding. When a beginner starts from scratch to become a senior software engineer, his learning process should be like this: (1) determine his own development field: for example, web development, Windows development, mobile development ...... (2) Select a preferred object-oriented development language, such as C ++, C #, Java, VB. NET ...... (3) proficient in the semantics of the language: for example, what is the meaning of each keyword (4) proficient in the process-oriented part of the language: Branch, loop, jump ...... This is a basic skill for writing members in the OO class (5) class libraries that understand and use this language: C ++ STL, MFC, VCL, ATL, C #/VB.. net. net Framework, Java JDK. Sometimes, we also call these class libraries OO programming APIs. At this time, you can write out some programs with commercial value. Use these ready-made class libraries boldly! (6) start to learn the OO part of the language: Do you write custom classes by yourself! Note: At this time, you are still learning the language, instead of entering the OO programming stage-because you have no real needs at hand, just "oo for oo ", nowadays, most college students stay at this stage. (7) start to learn the true OO: at this time, you are familiar with the language and can use it to express your thoughts freely. The knowledge you should learn is UML and design pattern. After learning this knowledge, you can use it to guide the practice. Oh, you are really a chicken and you become a Phoenix. Your salary may also increase a lot. However, the span from the programming language to the "language neutral" UML + dp is too large. After all, this is an ideological change rather than a non-technical change -- or, programming Language and UML + dp are two different things at all. How to combine them organically is a headache. (8) write your own class library: at this time, you can encapsulate the class in the DLL for Software Engineering reuse, your salary has basically entered the phase of growth in sync with your experience. (9) write your own framework: independent and separated class libraries have no vitality. When you organize your class libraries into application frameworks with vitality such as workflows and data processing flows, you can basically use it as the base of the product and only change the presentation layer (UI) to produce software products-you can consider opening your own company. I have seen several brothers who have been using a framework for two years. (10) Architect: Can you write an application framework like. NET Framework? Or MFC? JDK? Oh ...... Come on! Of course, due to my personal work vision, in this learning structure, I did not mention the languages and design methods that are convenient for the UI, such as HTML, JavaScript, actionscript ...... When work is required, we also need to study them in depth, but I prefer to treat this knowledge as a little tea in my spare time. BTW, I will list the average salary and learning time of the above stages in Beijing for your reference: fail (1) to (4) 1 to 2 years salary 0 K recommended in the university era (5) to (6) 1 to 2 years salary 4 ~ 5 K recommended to complete (7) to (8) 2 to 3 years salary 6 ~ 8 K must be accumulated in Work Practice (9) to (10) 2 to 5 years salary> 10 K also depends on experience, you can see through the above table, to become a good software engineer, less than in year 56, more than a decade and in (7) This is a watershed in revenue.
Perform oo to the endThe rise of college students is waiting for the fall! If oo really great ...... Think of the interviewer's words, tears and tears ...... Hehe, campus recruitment is about to begin again. Think about it and face the confused and helpless eyes again ...... Dear many college students, it's not that you don't understand, but that the world is changing fast. This year's freshman year, when you were in college, Ajax was like a dark line with a comet. When you were in sophomore year, she began to show people the beautiful Huifa. when you graduated, atlas has fallen to the ground ...... This is useless. Grasp what we have today. It's never too late to start learning. Learning is an investment. spending money to buy books is a trivial matter. The time spent is the most important. If you learn wrong knowledge or choose the wrong learning path, after one year, if you find that you have received a higher salary than your classmates, you will be compensated! From today on, I will take the book beginning C # objects as the outline and learn more about OO programming. First, I can learn a lot, enrich my knowledge, and consolidate my skills. Second, I hope to bring you some learning methods, to contribute and leave something for China's program community. Why did I choose this book as an outline? 1. I personally like this book and read it in English. I am using this book to train new employees in our company. I can read it carefully. the content in this book is comprehensive. You don't have to send a large bundle of books to everyone. famous Masters (on the books), famous writers (also written by the Java series), and translated by Han Reye! Mr. Dai Fei) 5. There are many benefits and benefits to read this book. I will list some of the following:
PositioningI think this book is very well positioned. Why? Please refer to: if this book is not available, when we move over the "watershed" mentioned above, the learning usage book is like this: From this perspective, we can see that -- if we want to use C # To express the realm of UML + dp, then, we must learn the "language neutral" UML language and then design pattern on the premise that the C # language is proficient. Because there are few books on UML and C # design pattern in China, we can only use this combination method (hopefully experts can make better suggestions ). Even if you have learned both C # And UML, and then open the book C # design pattern, you will still feel the first big, for a simple reason: there is no practical experience and guidance for living examples. In the book beginning, a course selection system for students was used throughout the course, and C # language, UML, and design patterns were all unified. Beginning C # objects positions itself in C # As an OO monograph, but it is not a C # language textbook, a UML textbook, or a design pattern textbook. It is a link between the two. Its biggest role is to activate a quick channel between "amateur" and "expert", which reduces the difficulty of learning like a catalyst.
BijiOne of the biggest features of this book is taking examples. There is a persistent instance. It is exquisite and practical, including requirement analysis, data extraction, and object abstraction ....... If you are writing a graduation project, you 'd better take a look at it. It will give you a lot of ideas, increase the color of your graduation thesis, and make your graduation reply more professional. More importantly, if you adopt this standard design method in your graduation project, when you deal with the interviewer, you can be as confident as a project engineer-without bamboo, the bamboo can still be used. It is always better than a sentence.
InterviewCampus recruitment is coming soon. Over the past week, I have been writing questions. Many oo-related questions come from the exercises in this book-each chapter in this book is not long, from lying down to bed to falling asleep, you can just read a section. There are questions behind each section, so you must have a magical dream. If you can take a look at these questions more or less, you will be more satisfied during the interview-at least I have read some pen questions from other companies, and there are also answers in this book.
PureThis book refers to the object-oriented part of C #, which is a monograph of OO. The taste is pure. I 'd like to talk about oo. I don't know if there will be any university teachers who will see even blog posts. If you see this article, it is recommended that you consider using this book as an optional course material so that students can learn the technologies urgently needed by the enterprise in the Age of Compulsory Course Selection and electives. Also, this book uses the C # language. I personally like the C # language and think it is indeed much easier to get started with the Java language, at least supporting it. the net framework class library is much more regular than JDK, and the acquisition, installation, configuration, and use of development tools (that is, the integrated environment) are much easier than Java (I know, because someone must use bricks to pat me next to this sentence, saying that Microsoft is too toxic to me. okok, even though you shot it, I earned my salary.) in this way, the learning barriers caused by language factors have been minimized.
Hand handleI like the third part of this book, from the UML framework TO THE IMPLEMENTATION OF C # language code. Well, let me think about my sister's animation. First, draw an animal's posture frame in a straight line. After the frame is painted, it cannot be changed. Then, use a curve to draw the animal's "meat". If it is not fat enough, just bend the line a little more. If it's too fat, pull the line straight A Little (think about myself, it's poor, and the skeleton is also good, but it's a pity that the meat is long outside, this song is not Qu, it's straight ...... Trouble ). The UML diagram is language neutral and can be implemented using C ++, C #, and Java. In this book, we naturally teach you how to use C # to strictly implement the UML framework.
EndI did not expect to write so much in one breath. This shows a problem: I may have limped out of the shadow. Maybe only reading can make me alone and not alone. Finally, if I had to re-design the cover of this book, I would rather not put the comments on the book-what is "Java programming ideas in the C # field ", it caught fire at first glance, as if C # is worse than Java. There is also the phrase "easily get through the second pulse of" Ren "and" du "of" C # "-- hanging over a bit. Then, what does" Ren du "mean? Unknown. What's more, I printed the comments of readers in Amazon (who can ensure that they are not hand-written !), How big is the red letter to mark ...... I felt a little numb. If I can choose to write any text here, I hope it will be p.259 (original p.332 :---------------------------------------------------------------------------------
Ease of Object ModelingDeveloping appropriate abstract models for software systems may be the most difficult aspect of software engineering because of the infinite possibilities. Abstraction is the extension of the observer's eyesight: The observer who works independently almost always creates different models. Which one is the best? The argument comes along. There will never be a "best" or "correct" model for future complex situations. There will only be "better" or "poor" models for the problems to be solved. There may be multiple equivalent modeling methods in the same situation ...... ...... To test whether the model fully captures user requirements, there is no ready-made reagent. ---------------------------------------------------------------------------------- What is this? This is the truth!
Legal disclaimer: This article is protected by intellectual property law. If any organization or individual needs to repost this article, it must ensure the integrity of the article (any amendment or modification without the permission of the author shall be deemed as an infringement ). If you need to reprint the document, be sure to indicate the source of the article
CsdnTo protect the rights and interests of the website, please note that the author of the article is
Liu tiemeng(Http://blog.csdn.net/FantasiaX) and send an email to the liutm@beyondsoft.com indicating the position and purpose of the article. Please repost this legal statement when reprinting. Thank you!