instructions
This is an article written five years ago. I wrote a summary after an internship. Five years later, I found it in the draft box by accident. Thank the past, bless the future
preface
Time gurgling like water, inadvertently slip away from the fingertips, across the nib. Silent, but trace. Jiang has been more than full term, suddenly like yesterday, wake up like the first. Sitting on the floor, thinking? Obtained? What is? .
impression
For nearly a month, I personally experienced the people, things, scenery and things here. More than 30 junior partner of the harmony and love to the front of the big family, they had strong technical expertise, practical to work with my heart, to be new kind and patient led not high shelves, and with “civilian”, they are “made” sunrise, sunset, bat to work overtime, no culture, no intrigues intrigue, oneself happy here, full and full.
The target
- Be familiar with and practice mobile technologies: As mobile continues to play an increasingly important role in Web development, front-end developers who don’t understand the technology will be left in the sand.
- Practice your skills at work, improve your ability to solve problems and learn independently
obtained
1. Think on your own
One of the biggest things from the internship is to learn to take the initiative to think about whether the demand itself is reasonable and how to make the experience better…
Offline package projects have a module used to specialize channel management, make the application can be associated with the corresponding channel, but the product is given to illustrate the application of the prototype is a set of their own independent add channel operation, the channel is not elected from the front in the maintenance of channels, and communicate with product, if this loses the significance of maintenance channel management, product change later demand, The interaction prototype was also modified in accordance with its own ideas.
2. Deep cultivation business
In my previous internship, some backend students often said that the front-end need not understand the requirements themselves, but I think this view is wrong.
Regardless of the world of code farming, no matter where you are, what you are doing, first of all, it is very important to know what you are doing. If you just do what is arranged step by step, it is no different from the walking dead, and there is no meaning for yourself.
Regression code farming world, in addition to understanding product interface prototype and UI renderings, the front end should also understand product functional requirements and business rules. Most of the time, in projects without design or interactive participation, the product does not control the interface carefully and fails to achieve the best experience in some interactive details. If the front end does not understand the business requirements and just implements the page as a prototype, the result will not be “better”.
3. Develop good coding habits
Good coding practices can improve the quality of our code, enhance collaborative team development, reduce the chance of bugs… You can even improve your understanding of the code you have written (if you have bad coding habits over time, you may not be able to quickly understand even your own programs).
My senior is not so much obsessed with code cleanliness or obsessive-compulsive as that he has developed good programming habits. Sometimes when he is looking at the code he has written, he often points out some problems of programming habits such as
- Keep semicolons uniform, not all in one place and none in the other
- Empty space when writing if while etc. This helps to distinguish it from function calls
- Use two Spaces for indentation. This ensures uniform indentation across all platforms
- Mark debugging and any code that is currently in use but needs to be removed in the future with XXX so that it can be removed later
(Usually we debug with console.log, etc., but use // to comment out the code after debugging, which is probably not deleted before it goes live.) Do a good job of annotation, such as in the route that piece, which template corresponding to what business should have a clear and obvious annotation, convenient for themselves and the maintenance of children’s shoes at a glance to know its role. 6….
The development of good habits is not a matter of a day, but a long time of accumulation and persistence, now write their own procedures will still have all kinds of problems, which also shows that the habit of forming a long road and to adhere to.
4. Extensible and configurable
Code extensibility is a goal that code farmers pursue. As FAR as I am concerned, code extensibility on the one hand refers to the programming designed to deal with or solve frequent changes in requirements and bring relatively large development costs to developers.
For example, there is a common navigation module, consisting of three sections, each with its own small module
Just begin to do when is written according to the prototype with completely dead way written in HTML, but later and product requirements to find this project is not the final hammer knock tuning completely, namely there are many variables, can add and remove the navigation module, in order to solve this problem, I will die first original HTML structure of abstracting, Generate large module titles, small module ICONS in the way of data configuration
$scope.groups = [{title: 'app management ',// title: 'glyphicon glyphicon-th-list',// isOpen: true,// whether to expand lists: [// submodule {title: 'application list', UI_sref: 'application_list', ICONS: 'glyphicon glyphicon-paperclip'}, {title: 'Channel management', UI_sref: 'channel_management', ICONS: 'glyphicon glyphicon-paperclip'}]}];Copy the code
This section of template can solve the problem of adding or deleting subsequent modules (just add or delete corresponding fields in the data model).
<uib-accordion> <uib-accordion-group is-open="group.isOpen" ng-repeat="group in groups"> <uib-accordion-heading> {{ group.title }} <i class="{{ group.icon }}"></i><span ng-class="{'triangle': group.isOpen,'triangle_no':! group.isOpen}"></span> </uib-accordion-heading> <ul> <li ng-repeat="item in group.lists" ng-click="tab.setCurrent('application_list')"> <a ui-sref=".{{ item.ui_sref }}">{{ item.title }}</a> <i class="{{ item.icons }}"></i> </li> </ul> </uib-accordion-group> </uib-accordion>Copy the code
5. Technology related
- Angular Initial Development, which takes advantage of angular features for initial Web development
- Familiar with flex layout
- Gulp knowledge primer, can write common gulP code to handle our tasks
The lack of
QDrap component development
The original reason for writing this component was that I wrote a drag and drop sort widget when I first got here and my brother looked at it and made a lot of suggestions
- During collision detection, it is not necessary to detect all elements, but only the elements that are likely to collide (of course, the premise is to determine which elements are likely to collide with the current element).
- Some behaviors should be configurable, such as animations for drag and drop
- Component development should try to meet and conform to other specifications, such as AMD, CMD
The front-end work of offline package project is not as expected
The offline package project is expected to be launched before the end of this year, excluding some uncontrollable factors in the front end (for example, the back-end data interface was only partially completed on 29th, and the data combination machine provided was only delivered on 28th…). Look for reasons in yourself
- The time of the project is definitely enough. The front-end has only completed 2/3 interface writing and logic interaction in 20 days, and it has not been tested yet. Why? Although it is a challenge to design the interface by myself, change is the only constant change, and it is impossible for me to do things I am familiar with at any time. Therefore, it takes me a lot of time to adapt to this situation, and my adaptability is poor.
- Did not control the time node, the page to write too much time nearly 2 weeks, this is not from the side to illustrate a problem, front-end basic knowledge CSS layout needs to be strengthened.
The problem
-
Not managing your time well, scheduling your work: In the actual work needs assessment and gives the corresponding completion time node is a very important thing, on the one hand, the node is given to other children’s shoes know your work schedule, and to facilitate coordination and cooperation, on the one hand and to make effective use of the time, but in the process of practice clearly show that the plan is not reasonable, the problem of low efficiency of work, At the end of the day, I don’t know how to arrange my time effectively
-
Lack of communication: close communication is indispensable to teamwork, and how to communicate between different roles is a matter of knowledge. How can I communicate with non-technical people or people who don’t understand the technology I’m working on in simple and effective language so they can understand what I’m talking about? This aspect of their own very lack
-
Narrow scope of knowledge: the basic knowledge of front-end development is not specific enough and comprehensive, “scope” is very narrow. Need to learn and expand.
-
Initiative doesn’t go far enough: Active thinking, take the initiative to communicate with partners, the initiative to assume more responsibility, feel projects or unreasonable places in life, to learn to take the initiative to go to push him, can’t rely on or waiting for someone else to do (such as when using the backend to data interface better friendly interface for the front is not enough, even in terms of business really is wrong, At first, I didn’t go to the backend boy to explain the reason, but thought the backend boy would find the problem by himself.)
-
Front-end don’t understand design: MMP, no design in the process of project implementation and interactive participation, need oneself to design interface, how to match the color, how to display layout, how interaction is more reasonable, is a challenge, in the process of practice also find themselves lack of this knowledge and ability, do things before most is also designed by others.
At the end
Thank you for this internship experience. I met a good team, in which everyone is your teacher, they are warm and patient, and there is no sense of distance. Here, I am happy, can learn new things every day, happy ing. These deficiencies and problems need to be corrected step by step. Guys!! For next year, from the beginning.