zendAPI 專案開發計劃

zendapi發表於2019-02-16

因為時間有限,開發在每天的上午6點到9點,晚上9點到12點以及週末,所以專案週期可能比正常的要長一點,我的計劃如下:

7月到8月完成對 zend engine 的一些核心資料庫的封裝

這個階段主要針對 zend engine 一些常用的資料介面做一些物件導向的封裝,比如用的最多的 HashTable, zendAPI 會為其提供一個STL風格的迭代器進行資料訪問,常見的 HashTable 的訪問語義介面,方面開發者的日常呼叫, 避免用到型別不安全的巨集呼叫。

8月到9月初步完成函式與物件導向語義這部分介面的封裝

這部分主要讓開發者方便的往 zend engine 掛載自己定義的函式,變數和類等等,將一些日常的引數獲取以及返回值進行標準化,讓書寫自定義函式的時候只關心自己的業務邏輯,讓這部分程式碼遠離 zend engine 底層的細節。在物件導向這一塊跟函式的思想也差不多,主要讓開發者建立自己的名稱空間,自定義的類更加的簡明,不用太關心底層一些繁瑣的細節, zendAPI 到時候會提供對 PHP 版本號的相容,所以對以後的升級,可以讓您的擴充套件最大限度的避免修改。

9月到10月完成全域性資源的統一訪問介面的封裝

PHP 從最開始的時候帶入了一些很不好的全域性變數和資源,其實這個並不是很好,會讓程式維護性大大降低。但是歷史已經已經無法改變,我們只能以一種相對比較安全的方式去使用它,慢慢的淘汰它,在 zendAPI 中我們將對其提供一些統一的訪問介面。

10月到11月完成 zend engine 啟動過程的封裝

擴充套件是不能脫離 zend engine 而存在的,我們必須將我們開發的擴充套件掛載到 zend engine 核心上去,zend engine 有自己的一套啟動流程,也有自己明確的生命週期的概念並對外提供了很多的鉤子函式和大量的巨集去幫組我們完成這個工作,但是相對來說還是相當繁瑣和複雜的,而我們有時候並不一定需要陷入這種細節之中浪費我們的寶貴的開發時間,所以我們在 zendAPI 中會對這個過程進行一些封裝,儘量去以一種物件導向的方式去簡化整個啟動過程。

11月到12月使用手冊與例子文件的完善

我從來都認為,一個好的開源專案,文件這部分很重要,甚至有時候比專案本身還重要,因為現在大家的節奏都比較快,沒有時間對研究程式碼,一個專案如果有好的文件支援,會大大降低入門門檻,讓更多的人去使用這個專案,才能讓其發揮出價值。如果 zend engine 核心這方面如果做得好的話,估計也沒有我們這個專案了。zendAPI 的文件主要在官網上進行提供,共有三個方面

使用手冊
API介面文件
開發部落格

12月到2018年1月完善軟體打包釋出流程

因為是暫時就我一個人開發,包括網站的維護,文件的書寫,所以很多方面很欠缺,到這個階段第一版的開發基本結束,我在這個階段基本是完成打包指令碼的優化和一些小工具的開發,比如生成專案結構的小程式。規範化版本號與版本釋出流程,針對主流平臺進行測試,提供相應的二進位制包(rpm, deb)等等。

總的來說,這個對我來說挑戰非常大,很多事情對我來說都是第一次,希望 zendAPI 能順利的跟大家見面,謝謝。

相關文章