作者GALINE (天真可爱CQD)
看板PHP
标题Re: [请益] Web相关技能路线规划
时间Sat Nov 30 18:54:12 2019
※ 引述《aa2468291 (penguin309)》之铭言:
> 想请益是否把前端技能补起来比较好
如果你只是在想学些什麽比较有价值,那麽你花时间认真学些什麽都是好的
「什麽都知道一些(超过初学者)」有时比单一技能更有价值
不过不管前端後端认真挖的话水都很深...
除了认识基础的 html 标签以外,大概要知道一下 DOM,CSS 的 box model,以及query selector
然後开浏览器的 devtool 看别人的网站怎麽设 css 的,看到看不懂的属性就丢关键字搜寻
Javascript 那边稍微麻烦一点,上面的东西要先有些些认识
可以开始想像「那如果我动态改变这个属性大概会发生什麽」之後再来学会有效率一点
更认真一点可以去翻一下浏览器本身的工作流程,有个模模糊糊的概念就好
ex:
https://cythilya.github.io/2018/11/10/inside-look-at-modern-web-browser/
MDN 是不错的文件参考,也有一些教学。不过不是每份文件都有中文
https://developer.mozilla.org/zh-TW/docs/Learn
> 老师说没有测试的ci/cd没甚麽意义
> 是不是这段时间我可以去了解一下php的测试
自动测试串接 CI 的概念其实很简单
- 写另外一支程式去检查真正要用的程式跑出来的结果对不对
- 如果有错误,回传一个不为 0 的 status code
- CI 看到不为 0 的 status code,会认定 Job 失败
(至少我用过的 CI 都是这样判断的...)
举个例子
假设我做一个...紫微斗数算命系统,里面有个 class 负责做阳历跟农历转换
那简单的测试 script 可以长这样
-------------------------------------
<?php
require __DIR__ . '/vendor/autoload.php';
$times = [
'1711-09-25 00:00:00' => '辛卯年八月十三子时',
'1900-01-31 02:00:00' => '庚子年正月初一丑时',
'1982-05-18 08:02:00' => '壬戌年四月二十五辰时',
];
$ctime = new ChineseTime();
$hasError = false;
foreach ($times as $input => $expectedOutput) {
$acutalOutput = $ctime->convert($input);
if ($acutalOutput !== $expectedOutput) {
echo "{$input} 的结果不是 {$expectedOutput} 而是 {$acutalOutput}\n";
$hasError = true;
}
}
printf("测试结果:%s\n", $hasError ? "失败" : "成功");
exit($hasError ? -1 : 0);
-------------------------------------
只要 $times 里面有够多的资料点
那你跑这只 test.php 大概就可以知道农历转换的的 code 有没有改烂
接下来只要设定 CI job 里面会执行 php test.php
看 CI job 的输出讯息就知道有没有把 code 改烂了
可喜可贺......
......不过实务上很少看到「自己写一个 test.php」这麽土炮的搞法
通常会用人家写好的测试框架
phpunit 这套测试框架算是业界标准,上网搜寻教学文章吧
然後也可以看看 laravel 自己的测试怎麽写的(当然是用 phpunit)
我认为写测试通常是难在
- 用到外部资料(Ex: 资料库)的东西怎麽测
- 哪些东西必测哪些没有也不那麽要紧
前者的解法通常是把跟外界互动的东西单独抽出来写成一个 class
然後测试的时候塞一个行为一样的假 class (phpunit 的 test double)
有时候则是准备一整套假的外部服务
例如测试时让 laravel 不连 mysql 而是连 in memory 的 sqlite
然後在里面建整份测试用的资料表
後者...就是经验跟哲学了,多踩一点雷(或多写一些其实没用的测试)就会有感觉
--
莉娜用魔法爆破进入屋内。
劫犯从另一个房间里出现,大叫道︰「你是谁!」
莉娜︰「我是个可疑的女人!」
劫犯无言以对。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.139.152.108 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1575111257.A.50F.html
1F:推 aa2468291: 感谢,我会参考看看 12/03 17:07
2F:推 onegoman: 推。 01/01 20:37