2015 Technical Summary this year is coming to an end, and I have also focused on writing a lot of code. There are a lot of attempts in the middle, and there are also a lot of places that are worth recording. By the way, I haven't written a Blog for half a year, also brush down the sense of presence (although there is no)
When I was at home during the winter vacation, I had nothing to do with a piece of Laravel code. after fixing a Bug, I felt that I had a deeper understanding of Laravel's design ideas, however, this framework was no longer used in subsequent projects. I still wanted to develop a few small Laravel plug-ins, but it was not enough. it was a big pity :)
When I got back to school, I studied the Excel File structure. I only learned about the old Excel 2003 File and read many Microsoft documents, especially those related to Compound File, I have a better understanding of Excel, and I have also written an extension of PHP Excel according to the document and understanding, which is used to quickly read an Excel 2003 file, the purpose is to provide a faster reading solution than PHPExcel, and the practice is still good, which is times faster than PHPExcel (because it is written in pure c ), the address is php-fast-excel, but it is also because there are no more requirements in the final project, so it is not updated on the Todo List. However, another Excel extension php_fast_xlsxwriter is used in multiple other projects. this extension is used to export a document of the Excel 07 version. it is encapsulated into a PHP extension by using the c library of xlsxwriter, practice has proved that PHP excel runs much faster than PHPExcel, and the results are generated in an instant.
Since I had two PHP extensions, I went to PHPCon in spring and listened to some PHP applications in actual business, I also learned from laruence about the new features of PHP 7 and the implementation of some key points. To be honest, I have benefited a lot.
Most of the time later, I was doing business. from understanding the business to implementing this business, I tried to use the design model in this process. It is found that sometimes a good design will bring great convenience to future maintenance. if the design is generic enough, some new businesses can also be implemented using the old business framework, achieve a multiplier effect. However, sometimes this is a double-edged sword, because the business may not always follow the design at the beginning, so there may be redundant design, which should be paid attention to and avoided. Fortunately, this year's design basically met the majority of requirements and saved yourself a lot of work. However, due to their inmaturity, these things can only be used by themselves, and strive to be easier to use in the design for the next year and the future, in addition, there is a framework design solution that makes it easy for others to get started.
In fact, another iOS project was set up in March, because it was also the first time that a complete GUI project was created (a previous project was purely implemented by Win32 API + BMP ), so now, the function is finished, and there are some details to beautify. it may not be visible until the Chinese New Year. In the middle of this day, when I went home, I experienced a refactoring. I changed the logic from the original casual ViewController solution to a clear one. later, I added a lot of convenience when adding functions, then, in December, we implemented a mixed article. Using the YYText library, we found that some open-source projects made by Chinese people were quite good. When I was working on iOS projects, I exposed many shortcomings, especially multithreading and lack of UI rendering practices. I only understood the theory. this time is just a good opportunity, from asynchronous multithreading to UI rendering, we have a great understanding and improvement.
In addition to technical work, after several times of "seeing the world" and "pitfall", I found that there is still a lot of space to learn, it is not only necessary to work hard on technical capabilities, but also to pay attention to and improve human experience.
Outlook
In terms of technology, it is possible to go deeper. PHP is often hacked because it is too simple to have a deep understanding of the PHP 7 kernel next year. in terms of framework design, as easy as possible for others to understand, easy to use by many people, more to reduce repetitive workload, as much as possible to make the system configurable management, rather than writing to the code; deepen our understanding of the UI and multi-threaded programming, strive to rebuild the iOS code, and use some good ideas (Promise or something) to make the bloated code more concise and easier to read; in terms of algorithms, I used to have the mood to do it. next year, I will strive for a goal. after turning over the Introduction to Algorithms, I found that I have learned more about algorithms and tried to do more questions, maintain a status where you can answer questions. I also summarized some experiences and updated my blog. = I haven't written it for half a year. I used to write it in the past. In short, I still need to strengthen my ability to write and express words.
For non-technical purposes, win a girlfriend :)