在Django使用Logging製作紀錄檔

Logging是作為backend server必備的工具,透過log file,你可以知道程式執行了甚麼。如果你的server有unexpected error發生,最好的做法就是到server查看log file,找出發生甚麼事。

這篇就紀錄在Django設置logging的種種細節吧。

Read more   2018/06/08 posted in  Django

在Django建立定時執行的Cron jobs(工作排程)

有時候我們需要server定時做某些東西,例如每天凌晨計算一天的營業額。

一般Web Server只會在收到請求時作出相應行動,所以最簡單做法,就是開一個Admin endpoint,人手「激活」server去做某些事。

這當然很蠢啊。

這時候我們可以用Linux上的crontab去讓他「自動」、「定時」執行某些工作。

Read more   2018/06/08 posted in  Django

Django Unit Testing - Part 2 Mocking

Mocking(模仿)對Testing十分重要,它可以取代本來system會做的某些功能,通常用於:

  1. Network Request(太費時了)
  2. 一些複雜的Dependencies(避免需要準備太多東西/不想被其他module影響到)
  3. 修改當前時間(尤其是依賴datetime.now()的function)
Read more   2018/06/04 posted in  Django

Django Unit Testing - Part 1 Basics

Testing是寫出好Software的必備條件。它可以讓你推出新功能時有足夠信心你的system可以正常運作,不用人手到處test,也可以及早發現bug,等等等等。

這篇就先看看在Django如何建立基本的test。

Read more   2018/06/04 posted in  Django

Laravel教學 Part 1 - 新手入門

以下介紹初學Laravel需要知道的檔案結構和概念。

Read more   2018/05/30 posted in  Laravel

Django Admin Libraries彙總筆記

紀錄一些擴充、改進django admin的open source libraries。

Read more   2018/05/28 posted in  Django

Ruby on Rails教學 Part 1 - Hello World Project

Ruby on Rails(簡稱Rails或RoR)是一個Ruby語言的Web開發框架,自2005年推出以來一直非常受歡迎。其特色是它致力以最少的code完成最多的功能,很多時候一行已經可以完成其他框架的一堆if-case(雖然有人會不喜歡自己的code太過於magical,包括我)。

以下按官方教學的流程,嘗試建立一個基本的Hello World project吧。

Read more   2018/05/22 posted in  Ruby on Rails

由零建立Vue.js WebApp及專案結構解釋

Read more   2018/03/18 posted in  vuejs

在Django裡處理One-To-Many Relation

建立Relational Database的時候常常會用到One-To-Many Relation,一般都是以Foreign Key的形式儲存。

Django功能十分齊全,但它的model inheritance設計令所有功能都非常"implicit",一些功能如果不知道要到哪裡define的話根本無從入手。
所以這篇就來紀錄一下如何用Django的ORM處理One-To-Many的Model吧

Read more   2018/03/18 posted in  Django

建置eslint開發環境

1. 前言

對於所有Project來說,"Coding Style"都很重要,尤其是多人協作時,應該大家一起follow某些共同的coding style,才方便互相查看及修改其他人的code。

這時候我們可以使用eslint,來規範整個project的code,雖不能統一各人的個人風格,但它可以確保所有code都consistently follow某些syntax,不會亂糟糟。

Read more   2018/03/18 posted in  nodejs

解決nodejs的relative import地獄

nodejs和npm是很模組化(modular)的framework,經常需要import其他package和檔案,但隨著專案規模越來越大,一不小心就會進入relative import的地獄:

import { Something } from '../../../../../../../../../HelloWorld';

以下是這個情況的解決良方。

Read more   2018/03/18 posted in  nodejs