ã¯ããã«
ãã®èšäºã¯ãç§ãWebãšã³ãžãã¢ãžã®è»¢è·ãç®æãéçšã«ãããŠäœæããããŒããã©ãªãªã®çŽ¹ä»èšäºã§ãã
ããŒããã©ãªãªã®æŠèŠãã工倫ç¹ãèŠåŽããç¹ãªã©ããã¡ãã«æžãããŠããã ããŠãããŸãã
ãŸããç¬åŠã§ã©ã®ããã«åŠç¿ããŠãããããã¡ãã«æžãããŠããã ããã®ã§ãåèçšåºŠã«ããã£ãšèŠãŠããã ãããšå€§åã³ã§ãã
æ¡çšãæ
åœè
ãèªãã§ããã ããŠãããŸããããã¢ããªã®æŠèŠã ãã§ã¯ãªããç§ã®ãããŸã§ã®ç¬åŠã§ã®åŠç¿ã®éçãã¢ããªéçºã§å·¥å€«ããç¹ã»èŠåŽããç¹ãªã©ãäžåºŠãèªãã§ããã ããã幞ãã§ãã
äœæè ïŒæçš¿æç¹ïŒ
- ãµãŒããµã€ããšã³ãžãã¢ãç®æã24æ³
- 倧åŠæ代ã«æ¥æ¬èªæå¡é€æ課çšãä¿®äº
- ããŸã«çãã¬ãã©ãžãªãã«ãã§å·¡ã
- æšãã¯ãã€ã¢ã³ã®ãŠãŒã¹ã±
- 2022幎1æããæ¬æ Œçã«ç¬åŠãéå§ïŒ2023幎6æ14æ¥æç¹ãåŠç¿æéåèšã§931æéå°éããŸããïŒ
ç®æ¬¡
1. äœæããã¢ããªã«ã€ããŠ
2. 䜿çšæè¡
3. åºæ¬èšèš
4. ãã®ã¢ããªãäœæããèæ¯ãšç®ç
5. ã¢ããªäœæããå®æãŸã§ã®æ¯ãè¿ã
6. ç¬åŠã§ã®åŠç¿ã®éç
7. ãäžè©±ã«ãªã£ããµãŒãã¹ãèšäº
8. ãããã«
1. äœæããã¢ããªã«ã€ããŠ
åŠç¿å
容ã®ã¢ãŠãããããšããŠãWebãµãŒãã¹ãå人éçºããŸããã
ã¢ããªæŠèŠ
ã¢ããªåã:ãã ãŠãŸã
URL ïŒ https://----ã(AWSç¡ææéçµäºã«äŒŽããå
¬éçµäºãããŠããã ããŸãã)
ïŒã¬ã¹ãã³ã·ã察å¿æžã¿ãã¹ãããããé²èŠ§ã§ããŸãïŒ
GitHub : https://github.com/yuyamh/datemaki-blade
- æ¥æ¬èªæåž«åãã®ãäœæãããææ¡ããå ±æã»æ€çŽ¢ã»ä¿åã§ããWebã¢ããªã±ãŒã·ã§ã³ã§ãã
ææ¡ãšã¯
æ¥æ¬èªæåž«ãåææ¥ã®ã³ãããšã«äœæãããææ¥ã®èšç»æ¡ãæããŸãã
æããåèªãé
ç®ãæéé
åã䜿çšææãäžå¿ã«ãã©ã®ããã«åŠç¿è
ã«æ¥æ¬èªãæãããããããããææ¥åã«æ±ºããŠãããã®ã§ãã
- ã¢ããªåã¯ãDatabase for Teachers Making Japanese Lesson Plansãã®é æåãåã£ãŠãã ãŠãŸãããšä»ããŸããã
ã¢ããªã®ç¹åŸŽ
ã ãŠãŸãã®äž»ãªç¹åŸŽã¯ä»¥äžã®éãã§ãã
- äœæããææ¡ãææã®æçš¿ã»ç·šéæ©èœïŒç»åã»ãã¡ã€ã«ã¢ããããŒãïŒ
- 察象åŠç¿è ã®æ¥æ¬èªã¬ãã«ã䜿çšããã¹ããããŒã¯ãŒãããŠãŒã¶ãŒåããã®æçš¿æ€çŽ¢æ©èœ
- æ°ã«å ¥ã£ãæçš¿ã®ããã¯ããŒã¯æ©èœ
ç»åã€ã¡ãŒãž
ããŒã ç»é¢
æçš¿äžèŠ§ç»é¢
ã¿ããªã®ææ¡äžèŠ§
ãŠãŒã¶ãŒãæçš¿ããææ¡ãææãææ¥ã®ã¢ã€ãã£ã¢ãèŠãããšãã§ããŸãã
ã¿ããªã®ææ¡äžèŠ§ä»¥å€ã«ãæçš¿äžèŠ§ç»é¢ã«ã¯æ¬¡ã®æ©èœããããŸãã
- ãã¶ãã®ææ¡äžèŠ§
- èªåãæçš¿ããææ¡ãææãææ¥ã®ã¢ã€ãã£ã¢ãããã§èŠãããšãã§ããŸãã
- ããã¯ããŒã¯äžèŠ§
- ããã¯ããŒã¯ïŒãæ°ã«å ¥ãïŒããææ¡ãèŠãããšãã§ããŸããããã¯ããŒã¯èªäœã¯åŸè¿°ã®ææ¡è©³çŽ°ç»é¢ã§å¯èœã§ãã
- ææ¡æ€çŽ¢ãã©ãŒã
- ææ¡ã»ææã¯ãæ€çŽ¢ãã©ãŒã ããããŒã¯ãŒããåŠç¿è ã¬ãã«ã䜿çšããã¹ãã®é ç®ããçµã蟌ãã§æ€çŽ¢ããããšãã§ããŸããâ
æ皿詳现ç»é¢
æ°ã«ãªãæçš¿ã®å
容ã詳ããèŠãããŸãã
ããã§ãã¡ã€ã«ã®ããŠã³ããŒãã»ææ¡ã®ããã¯ããŒã¯ãå¯èœã§ãã
ãªããæçš¿ã®ãµã³ãã«ããŒã¿ãšããŠãã±ããå
çãšããæ¹ããç¹å¥ã«ææ¡ã30件ã»ã©æåããããŸãããååããŠãã ãããæ¬åœã«ããããšãããããŸããã
ã±ããå çã®ããã°ã¯ãã¡ãâ
æçš¿äœæã»ç·šéç»é¢
æçš¿ã®äœæã»ç·šéãã§ããŸãïŒææ¡ãã¡ã€ã«ã®æ·»ä»ã¯ä»»æïŒã
æŠèŠã¯ããŒã¯ããŠã³èšæ³ã«ã察å¿ãããŸããã
ãã€ããŒãž
ã¢ã«ãŠã³ãæ
å ±ã®ç¢ºèªïŒã¢ã€ã³ã³ã»ååã»ãã¹ã¯ãŒããªã©ïŒãã§ããŸãã
ããã§ã¢ã«ãŠã³ãèšå®ã®å€æŽã»åé€ãå¯èœã§ãã
ãªãã²ã¹ããã°ã€ã³ããå Žåã¯ãã¢ã«ãŠã³ãæ
å ±ãå€æŽã§ããªãããã«å®è£
ããããŸããã
ã¢ããªã®æ©èœäžèŠ§
ä»åŸãæ©èœè¿œå ããŠããäºå®ã§ãããçŸæç¹ã§ã®æ©èœãšããŠã¯ã以äžã®éãã§ãã
ã¡ã€ã³æ©èœ
- ææ¡æçš¿æ©èœïŒCRUDïŒ
- AWS S3ãçšãããã¡ã€ã«ã¢ããããŒãæ©èœïŒãã¡ã€ã«åœ¢åŒ : pdf, docx, zip, xlsx, jpeg, jpg, pngïŒ
- ããŒãžããŒã·ã§ã³æ©èœ
- ããã¯ããŒã¯ç»é²ã»äžèŠ§æ©èœ
- ææ¡æ€çŽ¢æ©èœïŒããŒã¯ãŒããåŠç¿è ã¬ãã«ã䜿çšããã¹ãïŒ
- ãŠãŒã¶ãŒæ€çŽ¢æ©èœïŒããŒã¯ãŒãïŒ
- PHPUnitãã¹ãïŒCircleCIïŒ
- ã¬ã¹ãã³ã·ããã¶ã€ã³ïŒã¹ããç察å¿ïŒ
èªèšŒæ©èœ
- äŒå¡ç»é² / ãã°ã€ã³ / ãã°ã¢ãŠã
- ã²ã¹ããã°ã€ã³
- ãã¹ã¯ãŒãå€æŽïŒãã°ã€ã³äžïŒ
- ãã¹ã¯ãŒããªã»ããïŒéãã°ã€ã³ïŒ
- ã¢ã«ãŠã³ãæ å ±ç·šéïŒã¢ã€ã³ã³ãååãã¡ãŒã«ã¢ãã¬ã¹ïŒ
- ã¢ã«ãŠã³ãåé€
ããã¯ããŒã¯ç»é²
ææ¡è©³çŽ°ç»é¢ããããã¿ã³ã¯ãªãã¯ã§ç»é²å¯èœã§ãã
ã¬ã¹ãã³ã·ã察å¿
å
šç»é¢å¯Ÿå¿æžã¿ã§ãã
ã²ã¹ããã°ã€ã³
ããããäŒå¡ç»é²ããªããŠãæ©èœãè©Šãããããã²ã¹ããŠãŒã¶ãŒãçšæããŸããã
ãã°ã€ã³ç»é¢åã³ããã²ãŒã·ã§ã³ããŒã®ã²ã¹ããã°ã€ã³ãã¿ã³ããå©çšã§ããŸãã
2. 䜿çšæè¡
ããã³ããšã³ã
- HTML / CSS / Tailwind CSS
- JavaScript
ããã¯ãšã³ã
- PHP 8.2.5
- Laravel 9.52.7
- MySQL 8.0.32
- composer 2.5.5
- PHPUnit 9.6.7
- Node.js 16.20.0 / npm 9.6.6
ã€ã³ãã©
- Docker 23.0.5 / docker-compose 1.29.2ïŒéçºç°å¢ïŒ
- AWSÂ (EC2, ALB, ACM, S3, RDS, CloudFormation, Route53, VPC, EIP, IAM, CloudWatch)
- nginx 1.22.1
- CircleCI 2.1
ãªããéçºç°å¢ã®æ§ç¯ã¯Laravel SailãçšããŠè¡ããŸããã
ãã®ä»
- Git 2.39.0 / GitHub
- PHPMyAdmin
- Visual Studio Code
- iTerm2
- Notion
- draw.io
- Google Sheets
- Google Slides
- Google Document
- MacOS
âŸïž ãªããã®æè¡éžå®ãªã®ãïŒã¡ã€ã³ã®ã¿è§£èª¬ïŒ
ã¡ã€ã³ã®æè¡ã§ããPHP(Laravel)ãšAWSãLaravelãSailãéžå®ããçç±ãç°¡åã«è¿°ã¹ãŸãã
-
PHP(Laravel)
PHPãéžãã çç±ãšããŠã¯ã調ã¹ãéãååŠè ã§ãç解ãããããæ±äººæ°ãæ¯èŒçå€ãèšèªã ããã§ãããŸããäœãããã£ãWebãµãŒãã¹ïŒã ãŠãŸãïŒãPHPã§äœæå¯èœã ã£ãããéžå®ããŸããã -
AWS
AWSãéžãã çç±ã¯ããããã€ã®éã«ãã䜿ãããŠãããµãŒãã¹ã ã£ããšããã®ãšããµãŒããµã€ããšã³ãžãã¢ãç®æããŠããã®ã§ãããçšåºŠã€ã³ãã©ã®ç¥èãåŠç¿ãããã£ãããã§ãã -
Laravel Sail
éçºç°å¢ã®æ§ç¯ãã¹ããŒãã£ãŒã«ã§ãããããããŒããã©ãªãªã®å®æãæåªå ã§é²ããŠããç§ã«ãšã£ãŠæé©ãªéžå®ã§ããããŸããåŠãã§ããDockerã®ç¥èã掻ããããšãã§ããããããããŠLaravel Sailãéžã³ãŸããã
3. åºæ¬èšèš
ã€ã³ã»ãã·ã§ã³ããã
å¥éãèšäºãäœæäºå®ã§ãã
ç»é¢é·ç§»å³
ERå³
IDEF1Xèšæ³ã§ãç°¡æçã«äœæããŸããã
ããŒãã«å®çŸ©æž
äžã«èšèŒããæŠèŠã¬ãã«ã®ERå³ãå ã«ãããŒãã«å®çŸ©æžïŒã¹ããŒãèšèšæžïŒãäœæããŸããã
postsããŒãã«ïŒæçš¿æ å ±ã管çïŒ
usersããŒãã«ïŒãŠãŒã¶ãŒæ å ±ã管çïŒ
textsããŒãã«ïŒäœ¿çšããã¹ãã®æ å ±ã管çïŒ
bookmarksããŒãã«ïŒã©ã®ãŠãŒã¶ãŒãã©ã®æçš¿ãããã¯ããŒã¯ãããã管çïŒ
4. ãã®ã¢ããªãäœæããèæ¯ãšç®ç
ãªããã®ã¢ããªãäœæããã®ã
ã倧åŠæ代ã«æ¥æ¬èªæå¡é€æ課çšãšãããæ¥æ¬èªãæ¯èªãšããªãæ¹ã
ãžæ¥æ¬èªæè²ãè¡ãæåž«ãè²æããããã°ã©ã ã«åå ããŠãããŸããã
ãæ¥æ¬èªæè²ã«ã€ããŠåŠç¿ããäžã§ãæ¥æ¬èªæè²ã®çŸå Žã«ãããŠè§£æ±ºãã¹ã課é¡ã¯äœããšèããæ©äŒãå€ããããŸããããŸããåæã«ããã°ã©ãã³ã°ã®åŠç¿ãå§ããŠãããäœãITã®åã§æ¥æ¬èªæè²çŸå Žã®èª²é¡ã®è§£æ±ºãµããŒããã§ãããè¯ããªããšèããŠããŸããã
ãããã§æ¥æ¬èªæåž«ãå¿ããŠããå人ã®ååãåŸãŠãèªåã解決ã§ããããªèª²é¡ãå²ãåºãããã®åé¡è§£æ±ºã®äžã€ã®çãšããŠããã®ææ¡å
±æã¢ããªãã ãŠãŸãããäœæããŸããã
äž»ã«æ¥æ¬èªæè²çŸå Žã«ãããŠãçŸç¶èªåã課é¡ã ãšæã£ãŠããéšåã¯ä»¥äžã®2ç¹ã§ãã
â æ¥æ¬èªæåž«ã®æ¥åå€ã§ã®è² æ ã倧ããã
ãè¿å¹Žãæå¡ã®æ¹ã ã®æ¥åæéå€åŽåãåé¡ã«ãªã£ãŠããŠãæ¥æ¬èªæåž«ãããªãå€ãåŸåããããŸãããã ã§ããã課é¡æ·»åãåŠæ ¡éå¶ã»è¡äºæºåãªã©ã«æéãåãããäžãææ¡ã®äœæã«æéãå²ããŸãããããã§ãã ãŠãŸãã§ä»ã®å çãäœã£ãææ¡ãæ€çŽ¢ã»åèããããšã«ãããææ¡äœæã«æããæéãççž®ãããçµæçã«æ¥åæéå€åŽåãæžãããµããŒãã«ãªããŸãã
â¡æ¥æ¬èªæåž«ãææã»ææ¡ã»ææ¥ã¢ã€ãã£ã¢ãå ±æããå Žãããããå°ãªãã
ãããã¯èªåèªèº«ãæè²å®ç¿ã«åããŠææ¡ãäœæããŠããéãèªåã®ææ¥ã«åãå
¥ãããããããªæŽ»åã¯ãªãããªããšèª¿ã¹ãŠãããšãã«æããŸãããææ¡ãææãææ¥ã®ã¢ã€ãã£ã¢ãèªç±ã«ã·ã§ã¢ã»æçš¿ã§ãããµã€ããWebãµãŒãã¹çã¯ããããå°ãªãäžãææ¡ã®äœæã«ç¹åãããã®ã¯èª¿ã¹ãŠã¿ãéãçºèŠã§ããŸããã§ããã
ã誰ã§ãæ°è»œã«èªåã®ææ¥ã®ã¢ã€ãã£ã¢ãã·ã§ã¢ã§ããå ŽãæäŸããããšã§ãæ¥æ¬èªæåž«éã§ã®ææ¡ã®å
±æã®ããŒãã«ãäžããŸããåæã«ãæ¥æ¬èªæåž«éã§ã®æ
å ±äº€æãã§ããå Žã«ãªãããšã§ãäœã£ãŠããææ¡ãèŠçŽãããã©ãã·ã¥ã¢ããããæ©äŒãäœãããšãã§ããŸããå€ãã®ã¢ã€ãã£ã¢ã«è§ŠããŠããã質ã®è¯ãææ¥äœããç®æããŠã»ããããšããé¡ãã蟌ããŠããã®ã¢ããªãäœæããŸããã
5. ã¢ããªäœæããå®æãŸã§ã®æ¯ãè¿ã
工倫ããããš
â ã¢ã¯ã»ãµãçšãããéçºç°å¢ãšæ¬çªç°å¢ã«ãããã¢ããããŒããã¡ã€ã«ã®ãã¹ã®çµ±äžåã
ããã¡ã€ã«ã¢ããããŒãæãéçºç°å¢ã«ãããŠã¯storage/app/public以äžãžãæ¬çªç°å¢ã«ãããŠã¯Amazon S3ãã±ãããžä¿åãããããããã¹ãç°ãªããŸãã
ãå®æã«ifæã§åå²ãããã®ã§ã¯ãªããã¢ãã«ã¯ã©ã¹ã«ã¢ã¯ã»ãµãèšè¿°ããããšã§ãã³ãŒãã®éè€ããªããããã¡ã€ã«ãã¹ã®ååŸæ¹æ³ãçµ±äžããŸããã
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'title',
'description',
'level',
'user_id',
'file_name',
'file_mimetype',
'file_size',
'text_id',
];
// ã¢ã¯ã»ãµã®æ»ãå€ãããããã£ãšããŠäœ¿çšããã
protected $appends = ['file_url'];
// äžç¥
// ã¢ããããŒããããææ¡ãã¡ã€ã«ã®ã¢ã¯ã»ãµ
public function getFileUrlAttribute()
{
// Storage::url()ã§åŸãããçµæã¯ã䜿çšããã¹ãã¬ãŒãžãã©ã€ãã«ãã£ãŠå€ãããããããã§ç°å¢å·®ç°ã«ãããã¹ã®å€åãåžåããã
return \Storage::url('public/files/' . $this->file_name);
}
}
â¡ãã¡ã€ã«ã®ã¢ããããŒãã»åé€
ãã®ã¢ããªã®èã¯ãã¡ã€ã«ã®ã¢ããããŒããªã®ã§ãããã¯åŠ¥åããã«äœæããŸããã
工倫ããŠéçºããç¹ãšããŠãäžèšãæããããŸãã
- æ¬çªç°å¢ã«ãããŠãã¢ããããŒãããããã¡ã€ã«ã¯Amazon S3ãžä¿åããã
- éçºç°å¢ã§ã®ã·ãŒããŒå®è¡æããã¡ã¯ããªã§æçš¿ããŒã¿ãäœæãããã®ãšåæã«storage/app/public以äžã«ãããŒã®ãã¡ã€ã«ãä¿åãããã
- ãã€ã°ã¬ãŒã·ã§ã³ã®ããŒã«ããã¯ã»ãªãã¬ãã·ã¥æã«ãstorage/app/public以äžã«ä¿åããããã¡ã€ã«ãäžæ¬åé€ãããã
- æçš¿æã«ãã¢ããããŒããã¡ã€ã«ã®ãµã€ãºïŒKBã»MBãžå€æïŒãMIMEã¿ã€ããååŸããïŒæ©èœè¿œå ããæã®äœ¿ãããããæ³å®ããŠå®è£ ïŒã
- éäŒæã«ãèªåãã¢ããããŒããããã¡ã€ã«ãåé€ãããã
â¢PHPUnitãåãå ¥ãããã°ã®æ€ç¥
ããããã€æã«èªåã§ãã¹ããå®è¡ãããããã«ã€ã³ãã©ãæ§ç¯ãããã°ããªãç¶æ
ã§ãããã€ãããããã«ããŸããã
ãFeatureãã¹ããšUnitãã¹ãã®ã©ã¡ãããã£ã¬ã³ãžããŸãããã«ãã¬ããžãšããŠãæçš¿æç¹ã§70ïŒ
ã»ã©ãããŸãã
â£ã²ã¹ããã°ã€ã³ã®å®è£
ãããããã¡ãŒã«ã¢ãã¬ã¹ãšãã¹ã¯ãŒããçšæããæéãçãããã°ã€ã³ããªããšãæ©èœãè©Šããããã«ãã²ã¹ããŠãŒã¶ãŒãçšæããŸããã
ãã¢ã«ãŠã³ãæ
å ±ã®å€æŽä»¥å€ã¯ãäžéãæ©èœãè©Šãããšãã§ããããã«å®è£
ããŸããããŸããã¢ã«ãŠã³ãæ
å ±ã®å€æŽã¯ãã©ãŒã åŽã§é²ãã ãã§ã¯ãªããããªã·ãŒãã²ãŒãã䜿ã£ãŠäžæ£ãªæäœã«ããå€æŽãé²ãããã工倫ããŠå®è£
ããŸããã
â€ãŠãŒã¶ã«ã¬ãã¥ãŒããŠããããææãå ã«æ¹åïŒçŸåšä¿®æ£äžïŒ
ã倧åŠæ代ã®å人ãã¡ã«ããã®ã¢ããªã䜿ã£ãŠãããã䜿ãããã¡ãæ¹åãã¹ãç®æãæããŠããããŸããã
ã以äžã«ãæ¹åç¹ã®äžéšãæç²ããŸãã
- ã¬ã¹ãã³ã·ã察å¿ã«ãããŠãã€ã©ã¹ããšæåãéã®æ¹ãèªã¿ãããã
- ãããŒã¯ããŠã³èšæ³ããšããçšèªã«ã¯éŠŽæã¿ããªã人ãããã®ã§ã泚éãä»ããŠèª¬æããæ¹ãè¯ãã
- è²ãèŠã¥ããéšåãããã®ã§ãä¿®æ£ãã¹ãã
- æ€çŽ¢ãã©ãŒã ã®é ç®ã«ããŸãå¿ èŠãªããã®ãå ¥ã£ãŠããã®ã§ãåé€ãã¹ãã
ãå®éãèªåã§éçºããã ãã§ã¯çµ¶å¯Ÿã«æ°ã¥ããªãã£ãéšåã®ææããããããšãã§ãããŠãŒã¶ç®ç·ã§å¶äœç©ãèŠãããšãããã«éèŠãªãã®ããåèªèããããšãã§ããŸããã
èŠåŽããããš
â UI/UXã®èª¿æŽïŒTailwind CSSïŒ
ããµãŒããµã€ããšã³ãžãã¢ãç®æããŠãããšã¯ããããã¶ã€ã³ãããããã®ããŒããã©ãªãªãäœãããã«ã¯ãããªããšæããæ°åããå
¥ããŠåŠç¿ããŸããã
ããããå
ã
ææã§åŠç¿ããŠããBootstrapã§ã¯ãªããèªç±åºŠã®é«ãTailwind CSSãå©çšãããããããé«ãCSSã®ç¥èãæ±ããããŸããã
ãå
ã
ãã¶ã€ã³ãèããã®ã¯èŠæã ã£ããããç¹ã«ããŒãã«ã®ã¬ã€ã¢ãŠãããããŒã ç»é¢ã»ããã²ãŒã·ã§ã³ããŒãªã©ã«ç¬èªæ§ãæãããŠäœæããã®ã¯æ¬åœã«éªšãæããŸãããããã¯é 匵ã£ãŠãæã¡åã§ããç¶ç¶åãšæ ¹æ§ã§åŠç¿ããŸãããGridã¬ã€ã¢ãŠããFlexboxãªã©ã䜿ãããã®ã¯ç©æ¥µçã«äœ¿ãæ¹ãåŠç¿ããããŒããã©ãªãªã«ãµãã ãã«åãå
¥ããŸããã
ããŸãã劥åããã«ã¬ã¹ãã³ã·ããã¶ã€ã³ã«ãææŠããŸãããåªåã®ç²æãã£ãŠãã¹ããçã§ãã¢ããªãèŠãããšãã§ããããã«ãªã£ãŠããŸãã
â¡FormRequestã¯ã©ã¹ãçšããããªããŒã·ã§ã³ã®å®è£
ãæçš¿ç»é²ã»æŽæ°åŠçã§ã®ããªããŒã·ã§ã³ã§ã¯ãäºåã«äœæããããŒãã«å®çŸ©æžã«æ²¿ã£ãŠã«ãŒã«ã決ããŸãããããããã©ã®ããã«ã«ãŒã«ãèšå®ãããè¯ãããæåã¯æžæããŸããããŸãæçš¿ã®ãããããèæ
®ããŠèšå®ããå¿
èŠããããŸãããå
šãŠãå¿
é é
ç®ã«ããŠããŸããšãæ°è»œã«æçš¿ãã§ããªããªã£ãŠããŸããæçš¿ãããŸã§ã®ããŒãã«ãäžãã£ãŠããŸããŸãã®ã§ããã©ã³ã¹ãèããã®ã倧å€ã§ããã
ãã«ãŒã«ã®èšå®ã¯ãææ°ã®Laravelå
¬åŒããã¥ã¡ã³ãããä»ã®æ¹ã®GitHubãåèã«ããªããã䜿ããããšæã£ãéšåãåèã«ããªããèšè¿°ããŸããããŸãããŒãã«ãã©ã®ããã«é¢ä¿ãåã£ãŠããããã€ãªãããæèããŠã«ãŒã«ãèšè¿°ããŸãããå ããŠãå¿
é ãå€ããŠãè¯ãããã«äžæžãæ©èœãè¿œå ããããšæããŸãããããããŠãã¡ã€ã«æ·»ä»ãå¿
é é
ç®ããå€ããŸãããããããããšã§ãããç°¡åã«æçš¿ã§ããããã«ãªããæçš¿ã®ããŒãã«ãäœããªã£ããšæããŸãã
ããã®ç¹ã¯ããŠãŒã¶ã«å®éã«äœ¿ã£ãŠããã£ãŠããã®ã¬ãã¥ãŒãåèã«æ¹åãããŠããã ããŸããã
â¢S3ããã®ãªããžã§ã¯ãä¿åã»ååŸã»åé€
ããã¡ã€ã«ã¢ããããŒãã®æ¹æ³ãS3ã®èšå®ãæ·±ãç解ããå¿
èŠããããæ¬åœã«èŠåŽããŸããã
ãæ¬çªç°å¢ã®æ§ç¯ã«ãããŠãä»åã¯ãã¡ã€ã«ã®ä¿åå
ã«Amazon S3ãå©çšããŸãããS3ãã±ãããžã®ãã¡ã€ã«ä¿åã»åé€ã¯ããªããšãããŸãå®è£
ã§ããŸãããããã¡ã€ã«ã®è¡šç€ºã¯äžççžã§ã¯ãããŸããã§ããã
ãããŸããããªãåå ã培åºçã«èããŸããããIAMãŠãŒã¶ã®æš©éã«ééãã¯ãªãããããã¡ã€ã«ãã¹ã¯ééã£ãŠããªããããªã©ãäžã€äžã€ç¢ºèªãè©Šè¡ããŸãããäœåºŠãã£ãŠãS3äžã®ãã¡ã€ã«ã«ã¯ã¢ã¯ã»ã¹ã§ããªãç¶æ
ãç¶ããŸããã
æçµçã«å€æããåå ãšããŠãS3ãã±ããããªã·ãŒã«ããã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ãç¹å®ã®IAMãŠãŒã¶ã«ã®ã¿èš±å¯ãããŠããããã§ããã
ãS3ãã±ãããžã®ã¢ã¯ã»ã¹ã
ã¢ããããŒãïŒIAMãŠãŒã¶ïŒS3FullAccessä»äžïŒ
ç»å衚瀺ïŒäžç¹å®å€æ°
ãäžèšãç解äžè¶³ã ã£ãããããã±ããããªã·ãŒã«ã¯ãã±ãããžã®ã¢ã¯ã»ã¹ã¯ãå šå¡ãžèš±å¯ã§ã¯ãªãããS3FullAccessãä»äžããIAMãŠãŒã¶ã®ã¿èš±å¯ããšããèšè¿°ã«ããŠããŸããŸããã
â£AWS + CircleCIã§ã®èªåãã¹ãã»ãããã€
ãã€ã³ãã©æ§æå³ã«èšèŒãããŠããã ãããšãããæ¬çªç°å¢ã®æ§ç¯ã§ã¯CI/CDãã€ãã©ã€ã³ãšããŠCircleCIãå©çšããŸããã
ãã€ã³ãã©ã®é åã ã£ããšããã®ããããã¡ãã£ãšãšã£ã€ãã«ããã£ããªãšå人çã«æããŸããã
ãèŠåŽããç¹ãšããŠã¯ãèªåãããã€ã»èªåãã¹ãã®æµãããå匷ããå¿
èŠããã£ããããç解ã«ãæ§ç¯ã«ããããã£ããšããã§ããåèã«ããææããã®ãŸãŸç䌌ãã®ã§ã¯ãªããèªåã®æ§ç¯ãããç°å¢ã«åãããŠã«ã¹ã¿ã ããå¿
èŠããããŸããããã®ãããã¹ãç°å¢ãåããŒã«ã®é£æºãªã©ãåºç¯å²ã®èšå®ãããçšåºŠææ¡ããå¿
èŠããããåŠç¿ããæ§ç¯å®äºãŸã§ãçŽ1ã¶æåã»ã©ããããŸããã幟床ãšãªããbuild failedãã®æåãç»é¢äžã«çªãã€ãããæ³£ãããã«ãªããŸããããæµãã®ææ¡ãåçš®èšå®ã®èŠçŽããè¡ãããªããšãç¡äºCI/CDãã€ãã©ã€ã³ãå°å
¥ã§ããŸããã
ä»åŸã®èª²é¡
ãã ãŠãŸãã®éçºã«ãããä»åŸã®èª²é¡ã¯å±±ã»ã©ãããŸãããç¹ã«æ¹åãããç¹ã»çã蟌ã¿ããç¹ã«ãããŸããŠã¯äžèšã®éãã§ãã
â ããã³ããšã³ããã¬ãŒã ã¯ãŒã¯ã®å°å ¥
ãä»åã®éçºã§ã¯ãåŠç¿æéãšè»¢è·éå§ææãèæ ®ããããŒããã©ãªãªã®å®æãåªå ããããããJavaScriptãã¬ãŒã ã¯ãŒã¯ãå©çšãããå šãŠBlade Componentsã®ã¿ã§å®è£ ããŸããããã®ãããJavaScriptèªäœã¯åŠç¿ããŸããããVue.jsãReactãšãã£ããã¬ãŒã ã¯ãŒã¯ã®åŠç¿ã¯ããŸããã§ãããããåªããUI/UXãå°å ¥ãããã®ã§ãä»åŸããã³ããšã³ããã¬ãŒã ã¯ãŒã¯ã®åŠç¿ãããŠãããããšæã£ãŠãããŸãã
â¡æ¬æ Œçãªéå¶ãæèãããã»ãã¥ãªãã£é¢ã®åŒ·å
ã管çè æš©éãæã£ããŠãŒã¶ãçšæãããã¹ãŠã®æ©èœãå®è¡ã§ããããã«èšå®ããŠãããŸãããããã ãã§ã»ãã¥ãªãã£é¢ãè£ãã«ã¯è¶³ããªããšæã£ãŠãããŸãã管çè ç»é¢ãäœæããæªæãããŠãŒã¶ãŒã®åŒ·å¶éäŒãã³ã³ãã³ãã®åé€ãªã©ãªãžã§ã¯ãæ©èœãè¿œå ããã ãã§ã¯ãªããã»ãã¥ãªãã£ã®ç¥èããã£ãšåŠç¿ããŠãããå®å šæ§ã®é«ãã¢ããªéçºãã§ããããã«ãªã£ãŠããããã§ãã
â¢Webæè¡ã®åºæ¬çç¥è
ãåºæ¬æ å ±æè¡è è©Šéšã®æç§æžãèªã¿å šè¬çã«åŠç¿ããŸããããã¢ããªéçºãéããŠãŸã ãŸã ããã£ãŠããªãéšåãå€ããšæããŸãããããã°ã©ãã³ã°ã ãã§ã¯ãªããåå°ãšãªãWebæè¡ã®å šè¬çç¥èãåŠç¿ãåºç€åºãããã£ããããŠããããšã§ããã質ã®é«ãã¢ããªéçºãã§ãããšã³ãžãã¢ãç®æããŸãã
6. ç¬åŠã§ã®åŠç¿ã®éç
ããããã¯ãç§èªèº«ã®åŠç¿ããŒããããã«ãã©ãŒã«ã¹ããŠè¿°ã¹ãŠãããŸãã
ç¬åŠãéžãã çç±
ãåçŽã«ãéããªãã£ããšããçç±ããããŸããããªãã¹ã¯ãŒã«ã«éããç¬åŠã§ã®åŠç¿ãéžãã ãã«ã€ããŠãäžèš2ç¹ã®çç±ããããŸãã
ïŒã¹ã¯ãŒã«ãå°éåŠæ ¡ã«éããããšãã匷ãæãããã¡ãããããŸãããã¹ã¯ãŒã«ãšç¬åŠãã©ã¡ããè¯ãã»æªãã®è©±ã§ã¯ããããŸããã®ã§ãç解ããã ããŸããšå¹žãã§ããïŒ
â èªåãæ¬åœã«ãšã³ãžãã¢ã«ãªãããã®ããèŠæãè©Šãããã£ãããã
ãå
ã
ã倧åŠ4幎çäžæã«Webãšã³ãžãã¢ãšããè·æ¥ãç¥ããèªåããšã³ãžãã¢ã«ãªãããããšèãå§ããŸãããããããããããæ§ããæ±ããŠããã ãã§ãå®éã®ãšããã¯è«Šããã«æ¬åœã«ä»äºãããåããã®ããæè¡ã奜ãã«ãªããã®ãããšèªåããŸãããå®éã«ãšã³ãžãã¢ãšããŠåãã ããŠããã¯ã次ã
ãšå€§ããªå£ã«çŽé¢ãããšæããŸããããããèªåã®åã§ä¹ãè¶ããŠããå¿
èŠããããšæããŸãã
ããã ãã£ãŠã¿ããããšããæ§ãã ãã§ãã£ãŠããããããªè·æ¥ã§ã¯ãªããšæããŸãããèªåãæ¬åœã«ããåããã®ããæ ¹æ§ãè©Šãããã«ãããŠã¹ã¯ãŒã«ãå°éåŠæ ¡ã«éãããèªåã§èª²é¡è§£æ±ºããããåŸãªãç°å¢ã«èº«ã眮ããŸããã
â¡èªèµ°åãã€ãããã£ãããã
ãäžèšã®çç±ãšç¹ãã£ãŠããŸããããšã³ãžãã¢ãšããŠåãããã«ããäžå±€é«ãèªèµ°åã身ã«ã€ããããšãéèŠã ãšæããŸãããç¬åŠã§åŠç¿ãé²ããããšã«ãããèªåã®èŠæãè©Šããã®ãšåæã«ã課é¡ãèªå·±è§£æ±ºã§ããèªèµ°åã身ã«ã€ããããã®ã§ã¯ãªãããšæããŸããã
ãå®éãèªåã®åŠç¿ç¶æ³ãéçºã®é²æç¶æ³ã®ç®¡çããŠããã人ã¯ããªãã£ããããç¬åŠãç¶ããããã«ã¯é«ãèªå·±ç®¡çèœåãå¿
èŠã§ãããåŠç¿ãéå§ããåã¯ãèªåã®èªèµ°åãç©æ¥µæ§ã¯ãŸã ãŸã çåå¯ã§ãããšèªèªããã»ã©äžéå端ãªäººéã§ããããä»çŸåšããŒããã©ãªãªãäžæ®µèœäœãçµããŠã¿ãŠãããããåã以åãããä»ãããªãšèªåã®æé·ã«èªä¿¡ãæãŠãããã«ãªããŸããã
ãå®éã«ç¬åŠã¯èŸãé¢ããããŸãããããã¡ãã楜ããé¢ãå€ããããŸãããåçŽã«é¢çœããæ¢ç©¶å¿ãªã©ãçãŸãæè¡ã«è§Šããã®ã奜ãã«ãªãã1幎以äžãšé·ãéåŠç¿ãã³ãã³ããšç¶ããããŸãããæè¡ã奜ãã«ãªã£ãéšåã倧ããã§ãã
åŠç¿æé
- 2022幎1æãåŠç¿éå§
- 2023幎6æã«ã¢ããªãäžæŠå®æãããã
ãé±5æ¥ãåããªããåŠç¿ãç¶ãããããããŒããã©ãªãªå®æãŸã§ã«å²ãšæéãæãã£ãŠããŸããŸããã
éå§æç¹ã§ãåŠç¿æéã¯1幎éãšæ³å®ããŠãããŸãããã1幎ãçµéããæç¹ã§ç®æšã®ã¬ãã«ã«ã¯å°åºéããŠããªãã£ãããåŠç¿æéã䌞ã°ããŸããã
ãåŠç¿ã®é²æ管çãç¶ç¶ããã蚌æãšããŠã2022幎2æããTwitterã«åŠç¿èšé²ãæ®ããŠãããŸãã
ãçŸç¶ãåŠç¿ãéå§ããŠããã¯ãäºå®ãããæ¥ãé€ããŠã»ãŒæ¯æ¥ãã³ãã³ãç¶ç¶ãããŠããŸããã
åŠç¿æã«å·¥å€«ããããš
èªå·±åŠç¿ãç¶ç¶ã»ç®¡çãããããäžèšã®å·¥å€«ãåãããŸããã
â å匷äŒãžã®åå ã»äž»å¬
ãZoomãGoogle Meetã§å人ãã¡ãšæ±ºãŸã£ãæéã«æ¯æ¥ãåã 奜ããªããšãå匷ããå ŽãéããŸãããéå¬ããããšã§ãå匷ãããã£ãããæ¯æ¥äœãããšãã§ããåŠç¿æ欲ãç¶æã§ããŸããããŸããå匷äŒã®çµããã«å匷å 容ãå ±åãåãããšã§ãåŠç¿å 容ã®ã¢ãŠãããããã§ããŸããã
â¡å®åãæ³å®ããéçº
ãå®åæªçµéšãªã®ã§ãä»åŸãããžã§ã¯ãã«åç»ãããšãã«ããã«æŠåã«ãªãããããå°ãã§ãå®åãæ³å®ããŠããŒããã©ãªãªãäœæããŸãããç¹ã«æèä»ãããéšåã¯äžèšã®ãšããã§ãã
-
Git/GitHubã®äœ¿ãæ¹
ãæ©èœã®è¿œå ãä¿®æ£ãããéã¯ãå¿ ããã©ã³ããåã£ãŠéçºããŸããããŸããããã·ã¥ããéã¯ãã«ãªã¯ãšã¹ããåºããã¬ãã¥ãŒãããŠããããŒãžããããå¿ãããŸããããŸããç©æ¥µçã«issueãçºè¡ãã解決ãããã¯ããŒãºãããšãã£ãæé ãèžãã§éçºãé²ããŸããã -
ãªãã¹ãå ¬åŒã®ããã¥ã¡ã³ããèªã
ãæ°ããæè¡ã«è§Šãããšãããå®è£ ã®ä»æ¹ãããããªããªã£ããšãã¯ããŸãã¯å ¬åŒããã¥ã¡ã³ãã«ç®ãéããŸãããé£ããèšãåããæè¡çšèªãåæããŠããå°ã èªã¿ã¥ããã§ãããäºåç¥èãšããŠå ã«ããããªãçšèªã調ã¹ãããããå ¬åŒããã¥ã¡ã³ãã«æ»ãããã«ããŠãèªã¿æ £ããããã«åªåããŸããã -
ãšã©ãŒæã¯ããšã©ãŒæãèªãã§ä»®èª¬ãç«ãŠãŠããä¿®æ£ãã
ããšã©ãŒã¡ãã»ãŒãžãåºããšãã¯ãç®ãéããŠç解ããããã«ããŸãããèªãã§ãç解ã§ããªããšãã¯ç¿»èš³ããŠå 容ã倧ãŸãã«ç解ããããšããšã©ãŒã®ç¹å®ã«ç§»è¡ããããã«ããŸããã
ããã®æã«é ã®äžã§ããããããããã®ãããªãšã©ãŒãåºãã®ã§ã¯ãªããããšèªåã®äžã§ä»®èª¬ãç«ãŠãŠããŸãããããããããšã§ããšã©ãŒåå ãç¹å®ã§ãããšãã®ç解床ãäžãããããªããšãªãçŽãããããŸãåããããšããç¶æ³ãåé¿ã§ããŸãã
â¢ç®æšãèšå®ããã¹ã±ãžã¥ãŒã«ãç«ãŠãŠéçºãã
ãNotionã䜿çšãã1é±éã®äœæ¥å
容ããã£ããèããŠããåŠç¿ã»éçºãé²ããŸããããŸããç®æšéæ床ãã©ããããã§ããããèªåãªãã«æ¯ãè¿ããææ¥é²ããã¿ã¹ã¯ãå²ãåºããŠããå¯ãããã«å¿ãããŸããã
ãç¹ã«ç¬åŠã§ã®åŠç¿ãªã®ã§ãã¹ã±ãžã¥ãŒã«èšç»ãšé²æ管çã¯æ ããªãããæèããŠãåŠç¿ã»éçºãé²ããŸããã
7. ãäžè©±ã«ãªã£ããµãŒãã¹ãèšäº
æè¡å¥ã«ãã¡ã€ã³ã§äœ¿çšããåŠç¿ææããµã€ããèšäºã玹ä»ãããŠããã ããŸãã
â HTML/CSS/PHP/SQL/Docker
-
ãããã€ã³ã¹ããŒã«
ãã¡ãã¯HTMLãCSSãSQLã®ç¥èã ãã§ã¯ãªããDockerãLaravelã®åºç€ç¥èãã€ããããã«ããäžè©±ã«ãªããŸããã
â Laravel
-
Newmonz Laravelå
¥é&å®è·µ
ãããç¡æã§èŠãããã®ãïŒã£ãŠæãã»ã©ããã®ãµã€ãã ãã§ããªãåŠç¿ã§ããŸãã
Laravelã®åŠç¿ã«ãããŠãçžåœãäžè©±ã«ãªããŸãããæ§ããã«èšã£ãŠç¥ææã§ãã
人ã«ãããããããšãã¯çµ¶å¯Ÿã«ãã¡ãã玹ä»ããŸãã
- Youtube
â AWS
â CircleCI
â ãã¹ãã³ãŒãïŒPHPUnitïŒ
â ãã®ä»
-
å±±æµŠæž éããã®ææ
- GitïŒ ããæããªãGitïŒããŒã éçºã§å¿ èŠãªGitãå®å šãã¹ã¿ãŒ
- ããæããªãLinuxã³ãã³ããæãåãããªããLinuxã³ãã³ãã©ã€ã³ã5æ¥éã§èº«ã«ä»ããã
- JavaScriptã®ãåºç€ãã1æéã§åãããè¶ ãå ¥éè¬åº§ãåå¿è åãã
- ãŒãããå幎ã§Webç³»ãšã³ãžãã¢ã«ãªãããå®å šãŸãšãçã
â ããŒããã©ãªãªäœææã«åèã«ãããŠããã ããèšäºããµã€ã
äœåºŠãäœåºŠãæèŠãããã¡ã«ãã¡ã³ã«ãªããŸããã
-
ããŒããã©ãªãªãšããŠãçµµæ¬èªã¿èããèšé²ã®Webã¢ããªãäœæããŸããããLaravel / Docker / AWS / CircleCIã
äžã®èšäºãå·çãããããŸãŠããã«ã以åTwitterã«ãŠè³ªåã®DMããããŠããã ããã®ã§ãããéåžžã«äžå¯§ã«ãè¿äºããã ãããŸãããåªãããŠæ¬åœã«è¯ãæ¹ã§ããã -
ãããããŒããã®Youtubeåç»ã»ããã°
ç¬åŠã§åŠç¿ããŠãã人ã«ãšã£ãŠããã«ãªãç¥èãããããé ä¿¡ãããŠããŸãã- ãããããããŠãOKãã»ããããPHPå ¥éãç°å¢æ§ç¯ãäœåäœããŸãŠãã
-
ãã·ã³ãã«è§£èª¬ãLaravel9ã§ãŽãç®±ä»ãToDoãªã¹ãã¢ããªãäœã
ãã¡ãã®Youtubeã»ããã°ãéå¶ãããŠããããããããŒããã®ã©ã³ãçžè«äŒã«åå ãããŠããã ããŸãããåœæç§ãæããŠããäžå®ãæ©ã¿ãçæ¯ã«èããŠãã ãããæ¬åœã«å¬ããã£ãã§ãããŸãæ©äŒããã£ãããã²äŒã£ãŠã話ããããã§ãã
8. ãããã«
ããããŸã§ã®å匷æéãæ¯ãè¿ã£ãŠã¿ãŠãé£ãããªãèŸããªãšæããããªå€§ããªå£ã«äœåºŠãã¶ã¡åœãã£ãŠãããªãšæããŸãããããããããäžåã楜ãããã¯ã¯ã¯ã¯æããã£ããããããåŠç¿ãç¶ããããšãã§ããŸãããèªåã§ã¡ãã£ãšãã£ãŠã¿ããã解決ããŠã¿ãããšãªãã§ãç©æ¥µçã«ãã©ã€ããŠããããããã楜ããã»é¢çœã¿ã倧ããæããããšãã§ããã®ã§ã¯ãªãããšæã£ãŠããŸãããªã®ã§ãããšããã®éãé åãã«ãªã£ãŠãããšããŠããç¬åŠãéžæããŠæ¬åœã«è¯ãã£ããšæã£ãŠãããŸãã
ããããã転è·æŽ»åãããŠããäºå®ã§ããããšã³ãžãã¢ãšããŠã¹ã¿ãŒããåããåŸããåŠã³ç¶ãã姿å¢ãå¿ãããæ¥ã
貪欲ã«åŠç¿ããŠãããŸãããããŠãŠãŒã¶ã®ããŒãºã«é©åã«å¿ãã䟡å€ãæäŸã§ãããšã³ãžãã¢ã«å¿
ããªã£ãŠã¿ããŸãã
ïŒ2023/11/3 è¿œèšïŒ
çŽ2ã¶æåã®è»¢è·æŽ»åã®æ«ãWebç³»åèšéçºäŒæ¥ããå
å®ãããã ãããšãã§ããŸããã
2023幎9æãããµãŒããµã€ããšã³ãžãã¢ãšããŠåãå§ããŸããïŒ
é åãã«ã¯ãªã£ãŠããŸããŸãããããããŸã§å°éã«é 匵ã£ãŠããŠæ¬åœã«è¯ãã£ãã§ãð
çšæãªæç« ã«ãé¢ãããããã®èšäºãèªãã§ãã ãããæ¬åœã«ããããšãããããŸãã
ããäœããééã£ãŠããç¹ããããŸããããæããŠããã ããŸããšå¹žãã§ãã