關於網路那些事...

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

敏捷開發 - 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

Laravel 性能檢核清單

這裏參考 The 2018 Mighty Laravel Application 20 Optimization Ideas Checklist 列出提升 laravel 應用程式性能的 20 項目

Continue Reading

Voyager - 複寫 View blade

改寫 Voyager BREAD Views 的方法,可區分改寫指定的 BREAD 或者全部的 BREAD

指定 BREAD

首先,在 resources/views/vendor/voyager/ 位置,建立 slug 資料夾

資料夾名稱等同於當初你建立 BREAD 所設定的 slug-name

Continue Reading

Voyager 入門

根據官方描述,大致整理以下介紹重點:

Voyager 是什麼?

Voyager 是一個 admin interface,可以很輕易的為你的 app 建構 CRUD 功能,建構 Menu 選單,以及管理 media 檔案 ,此外,在管理介面的 Database Manager 可以直接用來管理資料庫及資料表,BREAD (Browse, Read, Edit, Add, & Delete) 功能則是可以很簡便的就直接設定資料表欄位在哪些時候要出現,以及他的功能屬性是什麼(文字欄位,選單,圖片..),該欄位的驗證規則…(詳細請參考 BREAD說明)

Voyager 不是什麼?

不是傳統的內容管理系統(CMS),部落格平台,當然也不是 wordpress 😜

雖然如此,你仍可以把 voyager 用來作為 CMS或 blog,一切都是可以由你自行決定

只要透過 Laravel+Voyager,你就能建立多種組合後台,並且是非常簡易的就能夠達成這些目的。

接下來,說明基本的安裝流程:

安裝

composer require tcg/voyager

Continue Reading