Time is fast, I have been a software engineer for three years. I have not done a project that has been doing framework-related work, sometimes maintaining web framework code, sometimes writing mobile hybrid front-end UI frameworks, and sometimes doing development tools or automated compilation platforms.
I would like to share some of the personal experiences I have at work during this period:
The attitude of making a frame
I do most of the work is the framework, the essence of the framework is to improve reusability. For the framework, in addition to their own ability is important, it is crucial to do a framework attitude.
1. Don't do it because it's difficult
(1). As programmer programmer, if you solve a difficult problem, you are benefiting all the people who use your frame.
(2). Even if it is a simple function, you can do it, as long as this function is not grandstanding.
I am tired of some people who have not even studied in depth after encountering difficulties. Of course, difficult problems to solve the time may be long, but if it is beneficial to solve.
2. Identify if you really can't do it
Perhaps due to the ability of the framework developers, some problems can not find a solution, so people easily boil down to do not. It's not that you can't admit that you can't do it, but I hope that we can discuss it more on the issue, but it's too easy to solve. Don't be so easy to say, "Can't do", this "can't do" should be repeated verification after the conclusion, rather than "you do not."
3. Use the user as a fool
Provide things out, do not let the user do too much, can be encapsulated on the package, can be simple. Don't let them go around too much, or there will be a lot of questions thrown at you, and the people who use them are very painful.
4. Frame Technology Selection
If the framework needs to access other technologies, it is not using the technology that it is best at, but the most commonly used by the public. For example, when Python, Go, Nodejs can be selected, whether the most popular Nodejs can be considered.
Javascript
1. Control essence
I write the most, the deepest point of sentiment is. The essence of all control effects, cobwebs, can be attributed to the location transformation, looming, and event control of DOM elements. So when implementing a control, the most essential analysis of what is to be done is related to which elements, what events, and what CSS3 effects are involved. That way, you won't be able to do it.
2. Pay attention to reuse
In addition, when you write the time to repeat the code to pay attention to, repeat where there is a place to reuse, whether it can be optimized. Don't just copy and paste it directly. This random copy-and-paste scenario is common in JavaScript, so it's important to enhance the ability to write reusable items (components, controls).
Hybrid FRAME (MOBILE)
I did it for more than a year. The Web UI portion of the hybrid framework. (There are a lot of very good hybrid framework, my previous articles have also said a lot, want to see can be turned upside down). Here are two points I would like to tell the developer of the hybrid framework.
1. How to do it as native-made
(1). Web pages combined with native shell applications, there are differences in effect from real native applications. How to do it as native, that is to do with the native. Animation effects, controls with native implementations, then the effect is really like.
(2). The control style is based on the phone's native control, like Framework7. Many frameworks now have the ability to find shadows on the native. It's not really necessary to be a maverick, unless you can do better than Apple's designer.
2. Don't use a single page
This is the worst thing I've added to the frame. This led to increased developer difficulty, the effect on Android is not satisfactory.
Deployment automation
1. If you can automate something, don't do it manually.
Whether it's for mobile applications, desktop applications, native or hybrid applications (Hybrid), or front-end backend, program packaging and compilation should be automated.
2. Freeing up developers
Develop a packaged platform that opens up versions, configurable content, and configures packages to the Deployer, and developers are not involved.
This kind of thing is beneficial to people, especially when it comes to packaging frequently. When you spend a few days automating things, you will find that the time saved is more than a few days.
The question of learning
1. Study only on their own
1. The company itself is not to let you learn the place, is to let you create value, but in the creation of value, incidentally learned things, so that you can get the practice. Of course, the things that may be done in itself have no place to study, that can only enrich themselves, but also may learn things not to practice.
2. Seniors will only talk about you, who do not want to teach, all want you to take the initiative to learn.
2. Multi-Learning Multi-summary
From the beginning of graduation to now, every time I have doubts, will be written down, find time to solve it, and then experience, write to the blog. A summary of the benefits of blogging, is to be able to carry out a complete summary of lessons learned, and for the blog content is correct, I will consult a lot of information to summarize, so always a little growth.
The attitude of the wrong
1. Don't be afraid
In the early years, when the problem was wrong, when they did not understand the details, began to panic, worried that they can not solve. And now is more calm, for the wrong, first clarify what is the problem, and then judge whether you should solve the problem is urgent, the last is to consider how to solve. Finally, the sky collapsed and the eldest brother blocked .
2. Admit not to do
Can not do, admit to do not, do not die duck better debater, to the back of the problem, and then embarrassed.
For self
1. Facing the problem
I think I'm a front-end engineer, but I know I can't do those pretty pages (design), just some of the stuff in the script section. I am not a smart person, just a little hard work, I will take the time to understand. In order to write a blog post, will be to complete the search for data validation.
2. To be relied upon by others
Three years of time, also make oneself in some aspects is others can not finish the last one to rely on. then the sky collapsed and I found you .
3. A little paranoid.
As I see more and more, know more, the more can recognize a thing right or wrong, for what I think is wrong, do not compromise, must point out.
4. Small progress
I am not a diligent person, also is not a not thinking enterprising person. I also fear that I have no progress, but also do not like to force themselves, so now I have to fight for their own every day a little different. Leisure time will learn to make small things, write blog, boring will also play games, I hope is to follow my heart.
People always want some pursuit, otherwise every day is about the same. My pursuit is a little different every day, a little bit of progress every day, enough.
Summarize
I started as a product back end, and then the next two years to do the front-end (in the department needs, in my department, not to see what you will, but to see what to do, if the need for new technology to do, then to learn, and then use up). Three years time has been fast, above these are I feel more important, I hope that the first into the community of programmers some useful.
This article for the original article, reproduced please retain the original source, convenient traceability, if there is the wrong place, thank you correct.
This address: http://www.cnblogs.com/lovesong/p/5721828.html
Experience as a software engineer for three years