Rumah pembangunan bahagian belakang tutorial php PHP软件工程师突破成长瓶颈-续(转载)

PHP软件工程师突破成长瓶颈-续(转载)

Jun 13, 2016 pm 01:13 PM
html memcache php

PHP程序员突破成长瓶颈-续(转载)

from:http://hi.baidu.com/%D3%E3%BA%CD%C3%A8/blog/item/835a6722adeb4e5d9922ed48.html

?

如何有效的学习是一个大问题。 自己有些实践但很零散,不好总结。昨天晚上睡觉前,突然想到了RUP的核心,“以架构为中心,用例驱动,迭代开发”,借用这个思想,关于有效的学习的方法,可以这样来表述:

?

以原理、模型或机制为中心,任务驱动,迭代学习

?

有点抽象, 举个例子来说明如何学习。

?

目的: 学习如何提高处理性能。

?

可迭代驱动的任务: 通过IP找到所在地域。

?

这是WEB应用常见的任务,IP数据库是10左右万行的记录。

?

第一次迭代: 不考虑性能的情况下实现功能(通过PHP来实现)

?

因为无法直接通过KEY(IP)进行查找地域,所以直接放到数据或通过关联数组这种简单的方法都是不行的。思路还是先把数据进行排序,然后再进行查找

?

如何通过IP查找? 已序的数据,二分查找是最快的。

?

如何排序?用库函数sort当然 是可以,但是即然是学习,那还是自己实现快速排序吧。

?

?

?

学习目标: 排序算法,查找算法

?

PHPer 数据结构和算法基础比较差,平时也没有这方面的任务,自己也不学习,因此这方面的知识很缺乏。但是,编程解决的问题,最终都会归结到数据结构和对这种数据 结构操作的算法。如果数据结构算法常在心中,那遇到问题就能清晰认识到它内在的结构,解决方法就会自然产生。

?

第二次迭代:优化数据的加载与排序

?

如果做到第一步,那基本上还是不可用,因为数据每次都需要的加载和排序,这样太耗时间。 解决的思路是,数据一次加载排序后,放到每个PHP进程能访问到的地方。

?

放到memcache 这是大家容易想到问题。其实放到共享内存(EA等加速器都支持)中是更快的方式,因为memcache还多了网络操作。 数据是整体放入到共享内存,还是分块放入,如何测试性能? 如何分析瓶颈所在(xdebug)? 在这些问题的驱动下你会学习到

?

学习目标: 检测、定位、优化PHP性能的方法; PHP实现结构对性能的影响。

?

第三次迭代: 编写PHP的扩展

?

性能还是上不去,不得不进入C/C++的世界了,不过从此你将不只是PHPer 而服务端的全能型工程师,当然这对没有做过C/C++的同学挑战是巨大的。 我这里无法再简单来说如何学习C/C++ ,可以参看 《PHP程序员学习C++》

?

学习目标:C/C++的学习,PHP扩展的编写

?

?

?

?

怎么确定需要学习的机制和原理呢? 怎么找到驱动学习任务呢?

?

我对需要学习的东西,都没有什么概念,怎么回答以上的两个问题?

?

从这个技术的定位来找出需要学习的重点,即它怎么做到(机制)的和它为什么能这样做到 (模型或原理)

?

列出这个技术最常见的应用,做为学习的任务,从简到难进行实践。

?

?

?

假如我需要学习Javascript ,我对于HTML,CSS有点感性认识

?

首要我了解到,JS 是WEB领域的动态语言,主要解决网页的动态交互的。

?

那我要学习的要点如下:

?

JS如何与HTML 进行交互 (机制)

?

JS的动态特性在那里,与其它动态语言有何区别?(语言模型)

?

?

?

如果完全自学,找到需要学习的要点(机制、模型、原理) 设定学习任务的确不是那么容易把握。如果找到一个有经验的人来指导你或加一个学习型的团队,那学习的速度的确会大大提高。

?

最后,我想说的是: PHP因为简单而使用,但不能因为它的简单而限制我们成长!

?

?

from:http://hi.baidu.com/%D3%E3%BA%CD%C3%A8/blog/item/835a6722adeb4e5d9922ed48.html

?

?

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1677
14
Tutorial PHP
1280
29
Tutorial C#
1257
24
Komposer: Membantu pembangunan PHP melalui AI Komposer: Membantu pembangunan PHP melalui AI Apr 29, 2025 am 12:27 AM

AI boleh membantu mengoptimumkan penggunaan komposer. Kaedah khusus termasuk: 1. Pengoptimuman Pengurusan Ketergantungan: AI menganalisis kebergantungan, mengesyorkan kombinasi versi terbaik, dan mengurangkan konflik. 2. Generasi Kod Automatik: AI menjana fail komposer.json yang sesuai dengan amalan terbaik. 3. Meningkatkan Kualiti Kod: AI mengesan masalah yang berpotensi, memberikan cadangan pengoptimuman, dan meningkatkan kualiti kod. Kaedah ini dilaksanakan melalui pembelajaran mesin dan teknologi pemprosesan bahasa semulajadi untuk membantu pemaju meningkatkan kecekapan dan kualiti kod.

Apakah kepentingan fungsi session_start ()? Apakah kepentingan fungsi session_start ()? May 03, 2025 am 12:18 AM

session_start () iscrucialinphpformanaginguserSessions.1) itinitiatesanewsessionifnoneexists, 2) resumeSanexistingsession, dan3) setSasessionCookieforcontinuityAcrossrequests, enableingApplicationeUseUshenticationandPersonalConizedConizedContentContentContentContentContentContentContentContentContentContentContentC.

Cara menggunakan fungsi MySQL untuk pemprosesan dan pengiraan data Cara menggunakan fungsi MySQL untuk pemprosesan dan pengiraan data Apr 29, 2025 pm 04:21 PM

Fungsi MySQL boleh digunakan untuk pemprosesan dan pengiraan data. 1. Penggunaan asas termasuk pemprosesan rentetan, pengiraan tarikh dan operasi matematik. 2. Penggunaan lanjutan melibatkan menggabungkan pelbagai fungsi untuk melaksanakan operasi kompleks. 3. Pengoptimuman prestasi memerlukan mengelakkan penggunaan fungsi dalam klausa WHERE dan menggunakan GroupBy dan jadual sementara.

Komposer: Pengurus Pakej untuk Pemaju PHP Komposer: Pengurus Pakej untuk Pemaju PHP May 02, 2025 am 12:23 AM

Komposer adalah alat pengurusan ketergantungan untuk PHP, dan menguruskan kebergantungan projek melalui fail komposer.json. 1) parse composer.json untuk mendapatkan maklumat ketergantungan; 2) Mengurangkan kebergantungan untuk membentuk pokok pergantungan; 3) Muat turun dan pasangkan kebergantungan dari Packagist ke Direktori Vendor; 4) Menjana fail komposer.lock untuk mengunci versi ketergantungan untuk memastikan konsistensi pasukan dan kebolehkerjaan projek.

Cara mengkonfigurasi set aksara dan peraturan pengumpulan mysql Cara mengkonfigurasi set aksara dan peraturan pengumpulan mysql Apr 29, 2025 pm 04:06 PM

Kaedah untuk mengkonfigurasi set aksara dan kolasi dalam MySQL termasuk: 1. Menetapkan set aksara dan kolasi di peringkat pelayan: setNames'utf8 '; Setcharactersetutf8; SetCollation_Connection = 'UTF8_GENERAL_CI'; 2. Buat pangkalan data yang menggunakan set aksara tertentu dan kolasi: createdataTabaseexample_dbcharactersetutf8collateutf8_general_ci; 3. Nyatakan set aksara dan kolasi semasa membuat jadual: createTableExample_table (idint

Cara menamakan semula pangkalan data di mysql Cara menamakan semula pangkalan data di mysql Apr 29, 2025 pm 04:00 PM

Menamakan semula pangkalan data dalam MySQL memerlukan kaedah tidak langsung. Langkah -langkah adalah seperti berikut: 1. Buat pangkalan data baru; 2. Gunakan mysqldump untuk mengeksport pangkalan data lama; 3. Import data ke dalam pangkalan data baru; 4. Padam pangkalan data lama.

Bagaimana untuk melaksanakan corak singleton di C? Bagaimana untuk melaksanakan corak singleton di C? Apr 28, 2025 pm 10:03 PM

Melaksanakan corak singleton di C dapat memastikan bahawa hanya ada satu contoh kelas melalui pembolehubah ahli statik dan fungsi ahli statik. Langkah -langkah khusus termasuk: 1. Gunakan pembina peribadi dan padamkan pembina salinan dan pengendali tugasan untuk mengelakkan instantiasi langsung luaran. 2. Menyediakan titik akses global melalui kaedah statik GetInstance untuk memastikan hanya satu contoh yang dibuat. 3. Untuk keselamatan benang, mod kunci semak dua boleh digunakan. 4. Gunakan petunjuk pintar seperti std :: shared_ptr untuk mengelakkan kebocoran ingatan. 5. Bagi keperluan prestasi tinggi, pembolehubah tempatan statik boleh dilaksanakan. Harus diingat bahawa corak singleton boleh menyebabkan penyalahgunaan negara global, dan disyorkan untuk menggunakannya dengan berhati -hati dan mempertimbangkan alternatif.

Tujuan komposer: Menguruskan kebergantungan projek dalam php Tujuan komposer: Menguruskan kebergantungan projek dalam php Apr 30, 2025 am 12:01 AM

Kami memerlukan komposer kerana ia dapat menguruskan kebergantungan projek PHP secara berkesan dan mengelakkan kerumitan konflik versi dan pengurusan perpustakaan manual. Komposer mengisytiharkan kebergantungan melalui komposer.json dan menggunakan komposer.lock untuk memastikan konsistensi versi, memudahkan proses pengurusan pergantungan dan meningkatkan kestabilan projek dan kecekapan pembangunan.

See all articles