search

这一年也接近尾声了,也专注写了不少代码,中间有很多尝试,也有很多觉得有意义的地方值得记录一下,顺便半年没写 Blog 了,也刷下存在感(虽然本来就没有)

寒假在家的时候没事研究了一阵 Laravel 的代码,顺手修了一个 Bug, 感觉对 Laravel 的设计思想有了一些更深入的理解,但是后来的项目中也没有用过这个框架了,原本还想再开发几个 Laravel 的小插件,也不了了之了,算是一个不小的遗憾:)

回到学校的时候研究了一下 Excel 的文件结构,只了解了一下旧版本的 Excel 2003 的文件,看了很多 Microsoft 的文档,尤其是和 Compound File 有关的,对 Excel 有了更多的理解,也按照文档和理解写了一个 PHP 的 Excel 的扩展,用来快速读取一个 Excel 2003 文件,目的是为了提供一个比 PHPExcel 更加快速的读取方案,实践效果还是不错的,比 PHPExcel 快千倍(因为是纯 c 写的嘛),地址在这里 php-fast-excel,但是也是由于最后项目里没有更多的需求了,所以也没有再更新 Todo List 上面的事情了。但是在其它多个项目中有用到另一个 Excel 的扩展 php_fast_xlsxwriter,这个是用来导出为一个 Excel 07 版本的文档,利用了 xlsxwriter 的 c 库,封装成了一个 PHP 的扩展,实践证明,比 PHPExcel 运行的速度快很多,基本上瞬间就出来结果了。

由于有了两次写 PHP 扩展的经历,然后就在春天去了次 PHPCon,去听了 PHP 在实际业务中的一些应用,也从鸟哥那里了解了 PHP 7 的新特性,以及一些关键点的实现,讲实在的,去听了下还是受益匪浅的。

后来的大部分时间都是在做业务方面的东西,从理解业务到实现这个业务,在这个过程中,有尝试着去使用设计模式。发现有的时候良好的设计会给未来维护带来很大的方便,如果设计的够通用的话,有的新业务也可以用旧业务的框架进行实现,实现了事半功倍的效果。但是,有时候这也会是个双刃剑,因为业务总不可能按照一开始的设计走,所以可能有多余的设计,这一点是要注意并且避免的。所幸的是,这一年的设计基本上满足了大多数需求,也给自己省了不少工作量。但是,由于自身的不成熟,导致了这些东西只能够为自己所使用,争取在明年以及未来的设计中,能够更易用,而且能够有让其他人很容易上手的框架设计方案。

其实四月份的时候就立了另一个 iOS 的项目,因为也是第一次完整的做一个 GUI 的项目(以前做的一个纯粹是 Win32 API + BMP 图的实现),所以拖到了现在,才把功能做完,还有一些细节方面的美化,可能要到过年完后才能看到这个 App。这中间在十一我回家的时候经历了一次重构,由原先的随便拼 ViewController 的方案,改成了一个逻辑比较清晰的,后来加功能的时候也方便了很多,然后就是十二月的时候做了一下图文混排的实现,利用了 YYText 的库,发现国人做的一些开源项目已经很不错了。在做 iOS 项目的时候暴露出自己很多方面的不足,尤其是多线程,以及 UI 渲染实践的匮乏,只懂得理论,而这一次刚好是一个很好的机会,从异步多线程到 UI 渲染,都有了一次极大的理解和提升。

除了在技术方面的工作之外,在经历过几次“见世面”和“坑人及被坑”后,发现有好多地方还有很大的学习空间,不仅仅要在技术能力上下功夫,更应该在为人处世上有所注意和提升。

展望

技术方面,尽可能往更深层次走,PHP 经常被黑是因为它实在是太过于简单了,争取明年对 PHP 7 的内核有一个深入的理解;框架设计方面,尽可能做到易于他人理解,易于多人使用,更多的减少重复工作量,尽可能将系统做成可配置管理的,而不是写死在代码中的;加深对 UI 以及多线程编程的理解,争取能够再重构一下 iOS 的代码,用一些比较好的思想( Promise 什么的),来使得已经臃肿的代码更简洁、更易读;算法方面,以前都是有心情做一做,明年还是争取有个目标出来,翻了下算法导论发现八成已经学过了,争取多做做题,保持一种能做出题的状态来。并且多总结一些经验更新博客吧= =这都半年没写了,以前的也都写的是皮毛,总之文字和表述能力还需要加强。

非技术方面,争取有个女朋友:)

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
The Continued Use of PHP: Reasons for Its EnduranceThe Continued Use of PHP: Reasons for Its EnduranceApr 19, 2025 am 12:23 AM

What’s still popular is the ease of use, flexibility and a strong ecosystem. 1) Ease of use and simple syntax make it the first choice for beginners. 2) Closely integrated with web development, excellent interaction with HTTP requests and database. 3) The huge ecosystem provides a wealth of tools and libraries. 4) Active community and open source nature adapts them to new needs and technology trends.

PHP and Python: Exploring Their Similarities and DifferencesPHP and Python: Exploring Their Similarities and DifferencesApr 19, 2025 am 12:21 AM

PHP and Python are both high-level programming languages ​​that are widely used in web development, data processing and automation tasks. 1.PHP is often used to build dynamic websites and content management systems, while Python is often used to build web frameworks and data science. 2.PHP uses echo to output content, Python uses print. 3. Both support object-oriented programming, but the syntax and keywords are different. 4. PHP supports weak type conversion, while Python is more stringent. 5. PHP performance optimization includes using OPcache and asynchronous programming, while Python uses cProfile and asynchronous programming.

PHP and Python: Different Paradigms ExplainedPHP and Python: Different Paradigms ExplainedApr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP and Python: A Deep Dive into Their HistoryPHP and Python: A Deep Dive into Their HistoryApr 18, 2025 am 12:25 AM

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

Choosing Between PHP and Python: A GuideChoosing Between PHP and Python: A GuideApr 18, 2025 am 12:24 AM

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

PHP and Frameworks: Modernizing the LanguagePHP and Frameworks: Modernizing the LanguageApr 18, 2025 am 12:14 AM

PHP remains important in the modernization process because it supports a large number of websites and applications and adapts to development needs through frameworks. 1.PHP7 improves performance and introduces new features. 2. Modern frameworks such as Laravel, Symfony and CodeIgniter simplify development and improve code quality. 3. Performance optimization and best practices further improve application efficiency.

PHP's Impact: Web Development and BeyondPHP's Impact: Web Development and BeyondApr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

How does PHP type hinting work, including scalar types, return types, union types, and nullable types?How does PHP type hinting work, including scalar types, return types, union types, and nullable types?Apr 17, 2025 am 12:25 AM

PHP type prompts to improve code quality and readability. 1) Scalar type tips: Since PHP7.0, basic data types are allowed to be specified in function parameters, such as int, float, etc. 2) Return type prompt: Ensure the consistency of the function return value type. 3) Union type prompt: Since PHP8.0, multiple types are allowed to be specified in function parameters or return values. 4) Nullable type prompt: Allows to include null values ​​and handle functions that may return null values.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.