比起工程師,更傾向於成為一名工匠。
最近发表的话题
最近发表的评论
  • Symfony 4.1 路由将提速 5 倍 at 1个月前

    Laravel 今天下 composer update 就會升級到 4.1 的 routing

  • 翻译了一下 Laradock 的中文文档 at 2个月前

    @leung0826 應該是 Windows 10 對 Docker Volume 的效能比較差的緣故,在 docker/for-win #188 有討論過

  • 这几天找工作遇到的面试题目,20 多家公司 100 多道题目 at 2个月前

    以高級 PHP 工程師來說這題目算是普通偏簡單

    從本科的角度來看:

    1. 計算機概論/組織: http/https 的差別、Linux 記憶體(內存)的分配方式與多執行緖原理。
    2. 資料結構:單向鏈結、簡單的樹(二元樹)
    3. 演算法:動態規劃(DP)
    4. 基礎程式設計:弱型別語言實現、PHP 與 C 的陣列(數組)差異

    真要說有什麼比較複雜的

    1. B+ Tree:會問這個估計是因為 MySQL 底層的資料結構實現是 B+ Tree
    2. XSS、CSRF、SQLi:不過這個有實作經驗的應該也要知道
    3. MySQL 的優化:這個也是視實作經驗

    還有一些我覺得該問但沒問的:

    1. Stack(堆疊/堆棧,First In Last Out)、Queue(佇列,First In First Out)
    2. 時序型資料庫的資料壓縮(當主鍵是一個連續遞增的 64bit Integer 值時,如何將此值壓縮?)
    3. 試實現一個 LRU 的快取機制(或是任何類似的快取機制)
    4. MySQL 跟 PostgresQL 的差異
    5. 如何保持一個服務的高可用?
    6. 何時使用等待序列(Queue)、或定時排程(Cronjob),此時的等待序列(Queue)會想如何實現?

    結論

    大部份是本科的東西,如果是非本科出師的工程師可能會覺得有點不太友善,但其實問題都滿切中核心而且很實際。

  • 從 RFC 看看 PHP 7.3 會有什麼新玩意兒 at 4个月前

    @leo 現在有殘廢的 lambda,好像在 2008 年有人提過,但是通過的只有 Closure 這個 Feature。

  • 在 CentOS7.2 中给了 laravel.5.5 目录 777 的权限不起作用? at 5个月前

    把 SELinux 關閉或是下 sudo chcon -Rt httpd_sys_content_t gyt && sudo chcon -Rt httpd_sys_rw_content_t gyt

  • 【PHP - 雷】foreach 與 reference 的雷 at 7个月前

    @xhh110 沒錯,只不過要注意在同個變數存在域下不可對同個變數進行賦值,與其檢查這個不如直接用完就隨手 unset

  • 【PHP - 雷】foreach 與 reference 的雷 at 7个月前

    @Lichmaker 這個出成筆試題就有點不太厚道了。

    我一直在強調,人腦不是、也不該是 compiler,不該用很刁鑽或炫技的考題來測試面試者。

  • 如何高效地学习 Laravel 框架? at 7个月前

    一開始學習就從文件開始啃的路過……

    想當年還是 Laravel 4.2,有系統性的教學資源還沒有這麼多,當時被一堆新觀念如 Dependency Injection、IoC 之類的搞得暈頭轉向。

    之後到了 Laravel 5.0,又來一狗票 namespace 之類的新玩意一下子無法接受。最後花了一整個暑假,把當時 Laravel 5.1 LTS 的程式碼全看完,才漸漸瞭解到 Laravel 設計上的先進之處。

    雖然仍有缺憾,但就把「想法 => 原型 => 成品」的工作流程看來,Laravel 算是 PHP 中最優秀的解決方案。

  • 【教程】以 Docker 實現多 PHP 版本自動化測試 at 8个月前

    @MrJing 現在的架構是完全沒有用到容器化技術,不過有考慮導入,所以我先研究了一下

  • 【教程】以 Docker 實現多 PHP 版本自動化測試 at 8个月前

    順帶一提,只使用 Dockerfile 的原因還有因為這樣可以比較容易遷移到 rkt 或其它的容器服務上。

    不會被綁死在 docker 這一個容器服務

  • Chrome 自动升级后,本地项目都无法访问 at 8个月前

    補充個小知識

    根據 RFC 2606,只有 .test.example.invalid.localhost 四個域名是會被安全保留的,各測試用域名詳細使用方式可以參見 RFC 2606

    包括 Laravel 官方所使用的 .app.dev 都不是合規範的保留域名

    前陣子,Google 說要推 .dev 的域名,嚇死一票開發者

  • 分享一下 Laravel、PHPer 面试可能会遇到的问题(已更新部分答案) at 9个月前

    @Rekkles 欸抖,因為牽涉到我最近在找工作的事兒,我先刪掉留言好了

  • 【心得】CodeIgniter 與 Laravel 的比較 at 11个月前

    @开水养鱼

    我記得他的廁所有三間,兩間是坐式的,一間是蹲式的

    不過那天面試我走得有點太急,沒去看他們到底有幾間廁所

  • 【心得】CodeIgniter 與 Laravel 的比較 at 11个月前

    @Summer @Tao

    為什麼所有人的重點都在馬桶上啦 XDDDD

  • 【心得】CodeIgniter 與 Laravel 的比較 at 11个月前

    @MrJing 其實免治馬桶在表達的是對方的廁所很高級,我很喜歡而已,有沒有這個功能對我來說其實還好 XD。

  • 【心得】CodeIgniter 與 Laravel 的比較 at 11个月前

    @李曦赞 到哪都有維護老項目的人,但維護得好不好又是另外一個故事了

  • 【心得】CodeIgniter 與 Laravel 的比較 at 11个月前

    @Chrisyes 其實這是個比較級,在 CodeIgniter 中要使用第三方套件的難度比 Laravel 做 Service Provider 來得簡單。

    不過 Laravel 中也是能夠不通過 Service Provider 引用第三方套件,只是不太推薦就是了

  • 怎么在 Laravel 的 Model 里加数据库连接池? at 11个月前

    這要看你給 Eloquent 的 Driver。

    從 PHP 的角度來講,有四種方法可以實現 Database Connection Pooling

    1. MSSQL pconnect(在 PHP 7.0 被移除,應該用 PDO 取代)
    2. PDO 的 ATTR_PERSISTENT
    <?php
        $dbh = new PDO(PDO_DSN, USERNAME, PASSWORD, [
            PDO::ATTR_PERSISTENT => true,
        ]);

    這種方法可以用 PDO 建立長連線(不間斷連線)

    在 Laravel 中可以這樣設定

    // config/database.php
    
    return [
        'connections' => [
            'mysql' => [
                'driver' => 'mysql',
                // ...
                'prefix'    => '',
                'options'   => [
                    PDO::ATTR_PERSISTENT => true,
                ],
            ],
        ],
    ];

    不過官方也有說明,如果 driver 支援長連接(例如 ODBC)就用 ODBC 原生的方法做,因為這樣不僅能讓單一應用程式使用 Connection Pooling,也能以 Process 的方式共享 Connection Pooling

    1. ODBC Connection Pooling

    前提是 ODBC 的 driver 跟 library 有支援,然後直接把 driver 改成 ODBC,然後用 PDO_ODBC 去連接資料庫,記得在 php.ini 中設定 pdo_odbc.connection_pooling=strict/relaxed/off

    1. freeTDS

    這是在網路上看到的做法,它是利用 linux process 去管理 connection,不確定現在還能不能用

    結論

    最簡單的做法是直接在 config/database.php 中加入一個 options,不過如果同一台伺服器上有超多個 connection 需求(建置有多個服務的話)那記憶體或磁碟 IO 使用量會很可觀。

    比較複雜但完善的解決方法是使用支援 Connection Pooling 的 ODBC Driver,好處是不僅只限連接 MySQL,也可以無痛擴充連接 MSSQl 或 Oracle SQL(除了 SQL 語法之外的無痛),壞處是建置成本比較高(需要花點時間摸索跟研究)

  • 去掉 Laravel 项目中引入的 Raleway 字体 at 1年前

    因為一個眾所周知的原因 :smile:

  • 大家都在哪里看片? at 1年前

    巴哈姆特動畫瘋、LoveTVShow、Netflix