關於網路那些事...

Marketing, SEO, Web trends, Programming tutorial, Web design, and Life event...

Linux tail 使用方式說明

Linux tail 使用方式

tail 可以取得讀取檔案內容,並且會從底部開始輸出

(另一個 head 指令,則是從前面開始輸出內容)

底下舉例:

Continue Reading

MySQL - 如何計算所有 database 大小

紀錄如何查詢 MySQL 資料庫中,所有 database size

語法如下:

SELECT table_schema "DB Name",
        ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
FROM information_schema.tables 
GROUP BY table_schema; 

Continue Reading

敏捷開發 - Scrum 執行 Sprint backlog

Scrum 執行 Sprint backlog

  • 將 Story 轉化成可被執行的 Sprint 清單

    首先,先確認清楚團隊可投入的有效工作時數

Continue Reading

敏捷開發 - Scrum 執行 Artifact,如何將需求明確化

Artifact,Scrum 文件管理

  • Vision
    • 軟體的遠景、願景
  • User Story

將期待及需求明確化

Continue Reading

敏捷開發 - Activity,執行 scrum 活動的流程

Activity,執行 scrum 活動的流程

  • 初期衝刺規劃 - Sprint planning meeting

    • 每個 sprint 開始的第一天,先進行 4-8 小時 plan to sprint 會議
    • Core Role 成員都需要參與,溝通
    • 逐一將所有 stories point分割成 task 項目(要做什麼,該怎麼做)
    • 估算每一個 task 所需要的時間(單位:小時)
    • 會議結束會產生 Sprint baccklog story (以及 task list)
  • 每日立會 - Daily Scrum 每天15分鐘

    • 每日成員會議,團隊成員輪流報告
    • 昨天目標執行狀況
    • 今天預計完成目標
    • 有沒有遇到什麼問題
  • 檢核 - Sprint

    • 以 2-4 週為一個衝刺區間
    • 在期間內逐一完成 story 中的 task 項目
  • 展示 - sprint demo (review) meeting

    • 在正式 Demo 之前,進行 2-4 小時的預前會議
    • Core Role 成員都需要參與
    • Production owner 會確認 story 有做到他期望的結果
    • Production owner 會再根據 story 提出新的想法,形成新的 sprint 則作為第二階段需求
    • 需預留會發生不符期待所需要的修正時間
  • 回顧 - Sprint repospective metting (1.5-3小時)

    Continue Reading

敏捷開發 - Scrum 敏捷團隊的角色與任務

Scrum

Scrum 是一個敏捷專案管理架構:

Continue Reading

敏捷軟體開發宣言(轉)

敏捷軟體開發宣言

藉著親自並協助他人進行軟體開發, 我們正致力於發掘更優良的軟體開發方法。 透過這樣的努力,我們已建立以下價值觀:

Continue Reading

Git-flow + Scrum

對於本文,請記住,在每個sprint結束時,每個story都標記為已完成或未完成。還要記住,每個story都需要被分解成可以提供商業價值的工作塊。

Continue Reading

Voyager - 客製化 Widgets 教學

Voyager 在管理員登入後,Dashboard 就會出現三個預設的 Widgets

這裡記錄客製化 Widgets 的方式

修改預設 Widgets config

首先,開啟 config/voyager.php

Continue Reading

git 保留修改並且恢復到前一版本

另外可能有一種情況,是本地有修改的內容,這些修改必須保留

但又必須恢復到前一版本

先將本地修改, commit 的內容都恢復到原有狀態

git checkout .

將尚未commit 的內容儲存到 stash

git stash

將版本恢復到指定版本

git reset --heard HASH

將暫存的資料整合回來

git stash pop

Continue Reading

Git 正式機更新資料流程

取回資料

一律使用 fetch 來獲取最新的遠端 branch 內容

fetch 將這些資料,在本地建立 copy

Continue Reading

Git 恢復版本機制,回到上一版或指定版本

假設使用 pull 或 merge 發現有問題

需要將正式機的版本返回到前面正常的節點

Continue Reading

Docker image 結構分析工具 - Dive ,幫助你檢視及減少鏡像的size

Dive 是一個查看 Docker image 層次結構的工具,幫助你管理 image,減少image size。

Continue Reading

Voyager - 客製化 Controller

客製化 Controller

要在指定的 BREAD 套用客製化 Controller 設定,流程如下:

Continue Reading

Laravel Json回應及錯誤處理

Laravel Json回應及錯誤處理

Laravel 再遇到錯誤時,多數會拋出錯誤在介面顯示,並且中斷

這時可以透過 try catch 來捕捉拋出錯誤,自定義要做什麼處理

下方式簡易的錯誤處理範例:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Exception;

class ErrortestController extends Controller
{
    public function index(){
        try {
            throw new Exception('When Error Happened');
        } catch (Exception $e) {
            echo $e->getMessage();
        }
    }
}

這裡列出 Exception 可用的方法

$e->getMessage(); //返回錯誤訊息
$e->getCode();    //返回錯誤代碼
$e->getFile();    //返回錯誤文件名稱
$e->getLine();    //返回發生錯誤的行數
$e->getTrace();   //backtrace()
$e->getTraceAsString();  //格式化成字串的 getTrace

建立 Support 處理返回 api 錯誤

建立 ApiSupport 來處理 api 錯誤

<?php

namespace App\Supports;

use Carbon\Carbon;

class ApiSupport
{

    /**
     * Api response 回傳格式
     *
     * @param array $DataSet
     * 
     * @return object $oResult 回傳值
     * @author Adam
     * @date 2019/01/22
     */
    public static function jsonResponseFormat($DataSet='')
    {
        $oCurrentTime = Carbon::now();
        //預設json返回格式
        $aDefaultDataset = [
                //可以設定在 .env
                "program"=> "my production",
                "version"=> "1.2.3",
                "release"=> "45",
                //動態參數
                "datetime"=> $oCurrentTime,
                "timestamp"=> strtotime($oCurrentTime->toDateTimeString()),
                "status"=> "",//success
                "code"=> 200,
                "message"=> "OK",
                "error"=> false,
                "error_message"=> "",
                "data"=> [
                    "rotues"=> [
                        "method"=>"GET",
                        "path"=> "/users",
                        "description"=> "Get user data"
                    ],
                    "message"=> "Hello world"
                ]
            ];
        $oResult = array_merge($aDefaultDataset, $DataSet);
        return $oResult;
    }
}

json回應就可以直接引用

Continue Reading

Voyager - Bread Create relationships

對於 Voyager 建立關係的項目中,這裡舉例子來說明:

範例

以送養人可以擁有多隻寵物,對於這些寵物則對應同一個送養人

這裡我們希望在新增寵物時,可以下拉選單選取他所屬的送養人是誰

送養人會自動產生關聯,得知他一共擁有多少隻寵物

Has Many

送養人 (guardian) 會擁有許多寵物 (Adoptee) ,Adoptee 的 Model 空間命名位置 : App\Adoptee

從哪一列…? Adoptee 被引用於(reference) Guardian? guardian_id

顯示向詳細訊息

顯示 Adoptee: name

Belongs To

寵物 (adoptee) 原始送養人 (guardian) ,Guardian 的Model空間命名位置: App\Guardian

從哪一列…? Adoptee 被引用於(reference) Guardian? guardians_id

選取項詳細訊息

顯示 Guardian: name

保存 Guardian: id

Continue Reading

敏捷軟體版本測試週期

敏捷軟體版本測試週期

採用敏捷開發過程,只要當需求足夠形成一個週期工作量之後,

就可以進行啟動循環週期: 分析-設計-開發-測試-上線

每個循環期間,會需要非常頻繁的進行軟體版本測試週期

(事實上,這裡所提及的 alpha, beta… 測試階段,與傳統做法不同,敏捷的測試階段都是以週期為檢核點 )

Continue Reading

軟體版本發布週期

軟體版本發布週期

軟體發佈的週期,會分為幾個階段流程,這邊做個簡記

Continue Reading

Docker auto start after reboot

設定開機自動啟動/不啟動服務

有些服務,再開機後會自動被啟動,有些則不會

可以透過 chkconfig 來設定

參數:

on 開機後自動啟動服務 off 開機後不啟動服務

例如 將apache服務設定為開機啟動

chkconfig httpd on

或開機不啟動

chkconfig httpd off

查詢目前的預設啟動服務列表

chkconfig --list

查詢預設啟動服務列表,可以看到共分成7個 level:

Level Level說明
0 關機
1 單人模式
2 多人模式,沒有網路功能
3 完整多人模式,文字介面
4 保留
5 完整多人模式,圖形介面
6 重新開機

針對指定的 level 設定為啟動或關閉

chkconfig --level 0~6 {服務名稱} on/off

例如,針對apache Level123 設定為開機啟動

chkconfig --level 123 httpd on

例如,針對apache Level 0~6 設定為開機關閉

chkconfig --level 0123456 httpd off

開機自動啟動 Docker

先執行確認允許執行 Docker

systemctl enable docker

將 Docker 列為開機自動執行

chkconfig docker on

檢查 Docker 是否已存在自動啟動服務列表

Continue Reading

MAC - 如何用 Cli 做 FTP Client連線

macOS 預設並沒有提供 FTP command line 工具

大多數 FTP 連線需求,也多是透過 GUI 或 IDE 來完成

這裡則要介紹如何透過命令列來進行 FTP 連線

Continue Reading