SlideShare a Scribd company logo
是
2016/09/22
主 'Shengyou'Fan
PHP' 'Day'#28
Composer 是PHP Day #28
好
https://youtu.be/1cABv5Ou0oE
http://www.slideshare.net/shengyou/
composerJfromscratch
https://github.com/laravelJdojo/
20160922JphpJtheJdayJdemo
Composer 是PHP Day #28
{'
''''"name":'"shengyou/self>introduction",'
''''"description":'" 還增",'
''''"authors":'['
''''''''{'
''''''''''''"name":'"主 '(Shengyou'Fan)",'
''''''''''''"email":'"shengyoufan@gmail.com",'
''''''''''''"homepage":'"http://www.shengyoufan.com",'
''''''''''''"company":'" 覺 '(The'Qwan)",'
''''''''''''"role":'[" 兩 ",'"Laravel' ⼀一以"]'
''''''''}'
''''],'
''''"support":'{'
''''''''"facebook":'"http://fb.me/shengyoufan",'
''''''''"twitter":'"@shengyou"'
''''}'
}
Composer 是PHP Day #28
只
•
• Composer
• Composer
• Composer 啊
• 不
•
很
Composer 是PHP Day #28
PHP
三只
HTTP
⾝身
要成會
index.php
posts.php
inc/
libs/
出 ⼼心 再
多
A
B
classes/
bootstrap.php
那 URL
php 再
Composer 是PHP Day #28
include 實
//' 'lib1' 'Class'
include'__DIR__'.'"/libs/lib1/Class.php";'
//'lib1' 那 'lib2' 'lib3'
include'__DIR__'.'"/libs/lib2/Class.php";'
include'__DIR__'.'"/libs/lib3/Class.php";'
//'lib2' 那 'lib4'
include'__DIR__'.'"/libs/lib4/Class.php";'
//'lib3' 那 'lib999'
include'__DIR__'.'"/libs/lib999/Class.php";
Composer 是PHP Day #28
多 new 多 ⾯面
//' 'Class'
$class'='new'MyClass();'
//' 'Class' 然'
PHP'Fatal'error:''Class''MyClass''not'found'
in'scripts.php'on'line'x
Composer 是PHP Day #28
那 都
libs/
A
B
C
E E
話情
D D
道
A
v.2v.1
Composer 是PHP Day #28
Composer
• 點
• 嗎 那都
• 第
• 於最
•
Composer
因 ⼒力 情
Composer 是PHP Day #28
composer.phar
再
+ +
git
果
php 5.3.2
(openssl extension)
Composer 是PHP Day #28
*nix 發
php'>r'"copy('https://getcomposer.org/installer',''composer>setup.php');"'
php'>r'"..."'
php'composer>setup.php'
php'>r'"unlink('composer>setup.php');"
installer' 不 發 太 'Composer' 樣
能 樣 網 'composer.phar'
會
mv'composer.phar'/usr/local/bin/composer
'composer' 不 想學
https://getcomposer.org/download/'
Composer 是PHP Day #28
Windows 發
• 中 Composer 起 for Windows
• 那 起 看 能同看
Composer 那 PHP網 起 php.exe
道網 PHP 道 起 ⼼心
https://getcomposer.org/Composer>Setup.exe
Composer 是PHP Day #28
wagon 已
• wagon Laravel 享 PHP/Laravel 發
網 去 Cmder因Composer因git
AMP網 wagon網家 wagon Cmder
已 Composer
P.S'wagon' 去 'cmder'發 中 'Composer'發
不 網 今 不 ⼼心
http://www.laravel>dojo.com/opensource/wagon
Laravel wagon與
Composer 是PHP Day #28
再
• Composer PHAR 再 (PHP archive)網
感 PHP Runtime 有 ( )
• composer.phar 道 成會 網
想學 與
$'php'composer.phar'[command]
Composer 是PHP Day #28
• 想學著增 網 想學與
$'[php]'composer[.phar]'[>>version]
Composer 是PHP Day #28
Composer
• 上 Composer網 bug-
fix
$'[php]'composer[.phar]'self>update
Composer 是PHP Day #28
PHP
• HTTP PHP CLI PHP
個 CLI PHP 個 CLI PHP 定
$'php'>v $'php'>r'"echo'PHP_BINARY;"
Composer 是PHP Day #28
次 extension
• HTTP CLI php.ini
個 CLI PHP
php.ini ⼼心
$'php'>>ini
個 CLI extension
$'php'>m
Composer 是PHP Day #28
XDebug 今下
• Composer XDebug
alias 過 XDebug
alias'composer='php'>n'/usr/local/bin/composer'
⽣生 網 都 做 ^.<
Composer
Composer 啊 ⼼心
Composer 是PHP Day #28
Composer
• 為 成會
• Composer
$'cd'~/Code/{MyProject}
$'composer'init
(那 給 'composer.json)
Composer 是PHP Day #28
{'
''''"name":'"{vendor/package}",'
''''"type":'"project",'
''''"license":'"proprietary",'
''''"authors":'['
''''''''{'
''''''''''''"name":'"{author'name}",'
''''''''''''"email":'"{author'email}"'
''''''''}'
''''],'
''''"minimum>stability":'"stable",'
''''"require":'{'
''''''''"{vendor/package}":'"{version}"'
''''},'
''''"autoload":'{}'
}
Composer ⼼心 再
Composer 是PHP Day #28
時⼈人
• PHP 都 與Packagist.org
• PHP ⽤用 網 ⾃自
說 因 那
/ 說
P.S Composer Packagist
Composer 是PHP Day #28
$'composer'require'{vendor}/{project}'
$'composer'install
Composer 是PHP Day #28
$'composer'update
Composer 是PHP Day #28
⼼心
<?php'
require'__DIR__.'/vendor/autoload.php';
多 'require
Composer 是PHP Day #28
多 網 …
Composer 是PHP Day #28
新
X Y Z
Major
Breaks
Minor
Features
Patch
Fixes
. .
Composer 是PHP Day #28
0.1.0 0.2.0 1.0.1 1.1.0
0.1.1 1.0.0 1.0.2 2.0.0
'
享
享 '
'
'
享
'
'
'
'
Composer 是PHP Day #28
Version Constraints
Exact Match 1.2.3 1.2.3
Wildcard Range 1.0.* >=1.0 <1.1
Hyphen Range 1.0 - 2.0 >=1.0.0 <2.1
Tilde Operator ~1.2 >=1.2 <2.0
Caret Operator
^1.2.3
^0.3
>=1.2.3 <2.0
>=0.3.0 <0.4.0
Stability Flags
@stable
@dev
dev > alpha > beta > RC > stable
⼼心種 stable網 @ 想
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^與 ^嗎 Composer
網 上 中 Copmposer
Composer 是PHP Day #28
所多 得
• 網 composer'require
• 樣 composer.json 網
composer'validate
• 情這 網太 ⽂文 dev-master 的
* ( 全 在 裡 Packagist )
• ⼿手 把 SemVer ⾏行 ( 享 很 把
)
• 樣 所多 樂 網 中
Packagist Semver Checker 多
Composer 是PHP Day #28
json 再 lock 再!?
年 commit VCS
Composer 是PHP Day #28
• composer.json
- 那 ⼼心
• composer.lock
- 知
• vendor
- 起
Composer 是PHP Day #28
(lock'再 )
After'installing'the'dependencies,'Composer'writes'
the'list'of'the'exact'versions'it'installed'into'a'
composer.lock'file.
This'locks'the'project'to'those'specific'versions.
Composer 是PHP Day #28
VCS
update install
jsonV.S lock
Composer 是PHP Day #28
/vendor'
/node_modules'
composer.phar
.gitignore
(Jordi' '
lock'再 果 )
Composer 是PHP Day #28
install 的 update
想學 歡 網 …
Composer 是PHP Day #28
1. 'composer.lock' 太最 '
2. 最 網 'composer'update' '
3. 最 網那 'lock' 'package'
$'[php]'composer[.phar]'install
Composer 是PHP Day #28
1. 'composer.json'再'
2. ⼼心 網作 ''
3. 作 'packages'
4. 'composer.lock
$'[php]'composer[.phar]'update
Composer 是PHP Day #28
• $'composer'install
- (git'clone) 網
那
• $'composer'update
- composer.json
-
( composer.lock 再)
( 那快沒後第 )
不
多 起
Composer 是PHP Day #28
能⾏行
• 能⾏行 與
- 錯 (recca0120/laravel>tracy)
- 發 (vlucas/phpdotenv)
- 說對 都 (robmorgan/phinx)
- 可說對 (fzaninotto/faker)
- (nesbot/carbon)
Composer 是PHP Day #28
錯
$'composer'require'recca0120/laravel>tracy
• 起 給
• 起 多 等如 網 全 ⽅方 好
• print_r()因var_dump() 發 ⼦子
• 說對 sql 新 情
Composer 是PHP Day #28
use'Recca0120LaravelTracyTracy;'
Tracy::instance();'
//'sql'log'helper'
function'sql($sql)'{'
' $tracy'='Tracy::instance();'
' $databasePanel'='$tracy>>getPanel('database');'
' $databasePanel>>logQuery($sql);'
}
Composer 是PHP Day #28
發
$'composer'require'vlucas/phpdotenv
• 說 多 起
• 都 不 網 說
都 都
• 起 網 ⼼心 說
Composer 是PHP Day #28
//'bootstrap.php'
use'DotenvDotenv;'
$dotenv'='new'Dotenv(__DIR__);'
$dotenv>>load();'
include'__DIR__.'/inc/database.php';'
//'inc/database.php'
define('DB_HOST','getenv('DB_HOST'));'
define('DB_PORT','getenv('DB_PORT'));'
//'...
Composer 是PHP Day #28
說對 都
$'composer'require'robmorgan/phinx
• 起 都 網 說對
• 網 說對
• 看 說對 本
• 說對 也也
Composer 是PHP Day #28
//'init'phinx'
$'vendor/bin/phinx'init'.'
//'edit'phinx.yml'
environments:'
''''development:'
''''''''adapter:'mysql'
''''''''host:'127.0.0.1'
''''''''//'...'
//'create'folders'
$'mkdir'>p'db/migrations'db/seeds
Composer 是PHP Day #28
//'create'migration'class'
$'vendor/bin/phinx'create'CreatePostsTable'
//'write'migration'script'
$table'='$this>>table('posts');'
$table>>addColumn('title',''string')'
' >>addColumn('content',''text')'
' >>addColumn('created_at',''timestamp')'
' >>addColumn('updated_at',''timestamp')'
' >>create();'
//'run'migrate'
$'vendor/bin/phinx'migrate
Composer 是PHP Day #28
//'create'seeder'class'
$'vendor/bin/phinx'seed:create'PostSeeder'
//'truncate'table'first'
$this>>execute('TRUNCATE'TABLE'posts');'
//'generate'seeding'data'
$data'='[...];'
$posts'='$this>>table('posts');'
$posts>>insert($data)'
' >>save();'
//'run'seeding'
$'vendor/bin/phinx'seed:run
Composer 是PHP Day #28
可說對
$'composer'require'fzaninotto/faker
• 多 說對 起 網每 說對
aaa因xxx因asdf 我 說對
• 剛 因 無 說對
• 網 可 說對
Composer 是PHP Day #28
use'FakerFactory'as'Faker;'
//'init'faker'
$faker'='Faker::create('zh_TW');'
//'generate'seeding'data'
$data[]'='['
' 'title''''=>'$faker>>realText(10),'
' 'content''=>'$faker>>realText(500),'
];
Composer 是PHP Day #28
$'composer'require'nesbot/carbon
• date() 不著 去
•
• 真真
• 新
Composer 是PHP Day #28
use'CarbonCarbon;'
//'generate'seeding'data'
$data[]'='['
' 'title'''''''=>'$faker>>realText(10),'
' 'content'''''=>'$faker>>realText(500),'
' 'created_at''=>'Carbon::now()'
' ' ' ' ' ' >>subDays($total'>'$index),'
' 'updated_at''=>'Carbon::now()'
' ' ' ' ' ' >>subDays($total'>'$index)'
' ' ' ' ' ' >>addHours(rand(1,'24)),'
];
Composer 從入門到實戰
Composer 是PHP Day #28
{'
''''"autoload":'{'
''''''''"psr>4":'{...},'
''''''''"classmap":'[...],'
''''''''"files":'[...]'
''''},'
''''"autoload>dev":'{'
''''''''"psr>4":'{...},'
''''''''"classmap":'[...],'
''''''''"files":'[...]'
''''},'
}
$'vim'composer.json
Composer 是PHP Day #28
psr>4
{'
''''"autoload":'{'
''''''''"psr>4":'{'
''''''''''''"App":'"app/"'
''''''''}'
''''}'
}
$'composer'dump>autoload
Composer 是PHP Day #28
index.php
composer.lock
composer.json
vendor/
app/
autoload.php
MyAwesomeClass.php
<?php'
namespace'App;'
class'MyAwesomeClass'extends'SuperPower'
{'
''''//'...'
}
Composer 是PHP Day #28
index.php
composer.lock
composer.json
vendor/
app/
autoload.php
MyAwesomeClass.php
<?php'
require'__DIR__.'/vendor/autoload.php';'
use'AppMyAwesomeClass;'
$awesomeness'='new'MyAwesomeClass();'
?>
Composer 是PHP Day #28
classmap
{'
''''"autoload":'{'
''''''''"classmap":'['
'''''''''''"libs"'
'''''''']'
''''}'
}
$'composer'dump>autoload
Composer 是PHP Day #28
index.php
composer.lock
composer.json
vendor/
libs/
autoload.php
my>old>school>class.php
<?php'
class'my_old_school_class'
{'
''''//'...'
}
Composer 是PHP Day #28
index.php
composer.lock
composer.json
vendor/
libs/
autoload.php
my>old>school>class.php
<?php'
require'__DIR__.'/vendor/autoload.php';'
$oldschool'='new'my_old_school_class();'
?>
Composer 是PHP Day #28
files
{'
''''"autoload":'{'
''''''''"files":'{'
''''''''''''"helpers/my>functions.php"'
''''''''},'
''''}'
}
$'composer'dump>autoload
Composer 是PHP Day #28
index.php
composer.lock
composer.json
vendor/
helpers/
autoload.php
my>functions.php
<?php'
if'(!'function_exists('super_power'))'{'
''''function'super_power()'{'
''''''''//...'
''''}'
}
Composer 是PHP Day #28
index.php
composer.lock
composer.json
vendor/
helpers/
autoload.php
my>functions.php
<?php'
require'__DIR__.'/vendor/autoload.php';'
?>'
<!>>'...'>>>'
''''<h1><?='super_power()'?></h1>'
<!>>'...'>>>
Composer 是PHP Day #28
• 那 Composer
• Composer
• 不
•
• 很
Legacy 開
⽇日 和和
http://www.theqwan.com/contact
覺 JetBrains 麼才
更 回網 PhpStrom ⼀一
更 很
Laravel
http://www.laravel-dojo.com
事 PHP/Laravel ⼀一 更
Composer 是PHP Day #28
動 Composer 想到
PHP
Composer
https://goo.gl/OfJK3C
⽇日 email網
PHPConf Taiwan 2016
PHP 間 網 2016/10/29 現們
Composer 是PHP Day #28
Q & A
您 ⽇日就

More Related Content

PDF
PHP 語法基礎與物件導向
PDF
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
PDF
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
PDF
使用 laravel 的前與後
PDF
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
PDF
From Generator to Fiber the Road to Coroutine in PHP
PPTX
PHP と SAPI と ZendEngine3 と
PDF
啟動 Laravel 與環境設定
PHP 語法基礎與物件導向
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
使用 laravel 的前與後
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
From Generator to Fiber the Road to Coroutine in PHP
PHP と SAPI と ZendEngine3 と
啟動 Laravel 與環境設定

What's hot (20)

PDF
OWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologies
PDF
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
PDF
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
PDF
OpenStackトラブルシューティング入門
PPTX
滲透測試 Talk @ Nisra
PDF
給你一個使用 Laravel 的理由
PDF
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PDF
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
PDF
Form認証で学ぶSpring Security入門
PDF
SRv6 study
PPTX
ウェブセキュリティのありがちな誤解を解説する
PDF
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
PPTX
Understanding kube proxy in ipvs mode
PDF
View customize plugin for Redmineの紹介 (2019年版)
PDF
エキスパートPythonプログラミング改訂3版の読みどころ
PPTX
Load Balancing and Scaling with NGINX
PDF
Rust と Wasmの現実
PDF
Securing AEM webapps by hacking them
KEY
Vyatta 改造入門
PDF
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...
OWASP Poland Day 2018 - Frans Rosen - Attacking modern web technologies
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OpenStackトラブルシューティング入門
滲透測試 Talk @ Nisra
給你一個使用 Laravel 的理由
PHP7で変わること ——言語仕様とエンジンの改善ポイント
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
Form認証で学ぶSpring Security入門
SRv6 study
ウェブセキュリティのありがちな誤解を解説する
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
Understanding kube proxy in ipvs mode
View customize plugin for Redmineの紹介 (2019年版)
エキスパートPythonプログラミング改訂3版の読みどころ
Load Balancing and Scaling with NGINX
Rust と Wasmの現実
Securing AEM webapps by hacking them
Vyatta 改造入門
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...
Ad

Similar to Composer 從入門到實戰 (20)

PDF
[PHP 也有 Day #64] PHP 升級指南
PDF
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
PDF
[Modern Web Conf 2015] 給 PHP 開發者的 Composer 錦囊
PDF
Vim hacks
PDF
Python 于 webgame 的应用
PDF
OpenWebSchool - 02 - PHP Part I
PDF
Php More
PDF
用Raspberry PI學Linux驅動程式
PPTX
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
PDF
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
PPT
Web安全解决方案V1.0
PDF
凌波微步:wagon + VS Code 的輕功哲學
PDF
Django step0
PDF
Ruby on Rails 開發環境建置 for Ubuntu
PDF
The ruby-way
PDF
老司機帶你上手 PostgreSQL 關聯式資料庫系統
PDF
Openshift by mtchang
PDF
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
PPT
[20081118] How To Trace Code Like Source Insight Through Vim
PDF
Php可调试团队开发环境配置
[PHP 也有 Day #64] PHP 升級指南
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web Conf 2015] 給 PHP 開發者的 Composer 錦囊
Vim hacks
Python 于 webgame 的应用
OpenWebSchool - 02 - PHP Part I
Php More
用Raspberry PI學Linux驅動程式
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Web安全解决方案V1.0
凌波微步:wagon + VS Code 的輕功哲學
Django step0
Ruby on Rails 開發環境建置 for Ubuntu
The ruby-way
老司機帶你上手 PostgreSQL 關聯式資料庫系統
Openshift by mtchang
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
[20081118] How To Trace Code Like Source Insight Through Vim
Php可调试团队开发环境配置
Ad

More from Shengyou Fan (20)

PDF
[JCConf 2024] Kotlin/Wasm:為 Kotlin 多平台帶來更多可能性
PDF
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
PDF
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
PDF
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
PDF
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
PDF
How I make a podcast website using serverless technology in 2023
PDF
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
PDF
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
PDF
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
PDF
Using the Exposed SQL Framework to Manage Your Database
PDF
[COSCUP 2022] Kotlin Collection 遊樂園
PDF
初探 Kotlin Multiplatform
PDF
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
PDF
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
PDF
Composer 經典食譜
PDF
老派浪漫:用 Kotlin 寫 Command Line 工具
PDF
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
PDF
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
PDF
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
PDF
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置
[JCConf 2024] Kotlin/Wasm:為 Kotlin 多平台帶來更多可能性
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
How I make a podcast website using serverless technology in 2023
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
Using the Exposed SQL Framework to Manage Your Database
[COSCUP 2022] Kotlin Collection 遊樂園
初探 Kotlin Multiplatform
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
Composer 經典食譜
老派浪漫:用 Kotlin 寫 Command Line 工具
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置

Composer 從入門到實戰