Jump to...
redirecting...

Log for OwO

只是默认全局变量
不要這樣,會很容易爆
全局,我指的是 global 的这个
會死(物理)
所以让程序员处理要 let 还是 const 还是 var 啊
換日線
ㄏㄏ 我先
[sticker](media:AAQFABOcGL4yAAQ2cTLfYTur568SAAIC@telegram)
噗噗片
es3怎麼處理let阿
所以好的IDE比搞coffee script好多了
ES3?
那個Error
[sticker](media:AAQCABObu1kqAASoZZRj_615GqsAAwI@telegram)
對啊 bebel不是有辦法轉
transpiler 啊 (话说你还在用 ECMAScript) ?
你是不是不小心被拿去微波了
🌚 Node v6 都能够 let 了
[sticker](media:AAQEABOTaZEwAAQL0w8ZX5WpzQQcAAIC@telegram)
Node v7.4 都能够 async await 了
我還是睡個覺好了,別為了蔣幹樺浪費肝的壽命
[sticker](media:AAQEABOSHnEwAAS7cPOXyhxIiFUsAAIC@telegram)
还在写 JS 啊
因為let在宣告之前用不是會Error
😐 是啊
看情况
那在Es3是要手動重現Error
如果是在函数里面就不会
C語言系列羨慕中XD
我要找時間學才行...
我很好奇 JS 加了 let 有誰受惠
而 transpiler 是用函数来处理 var 的局部作用领域
[sticker](media:AAQBABOgsO8vAARhp36YGlBDtPo1AAIC@telegram)
不要你没有用到,就问谁受惠
[sticker](media:AAQFABNOLb4yAASs2fKap2QeHTICAAIC@telegram)
我現在幾乎不寫了qq
探尋什麼技術很帥中
我也太久沒寫ode了
静态罗弱类型走开
🌚👉
我很怕 C 了
我很怕 JS
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
我很怕不知道要寫三小\
我現在就正在歷經這個XD
我很怕functional
来陪我写 editor
神(经病) 的 editor
你究竟怕什么
我在思考搞一套表單系統
undefined
但,這樣我得碰一些前端
其實是 null
为什么 undefined ?
为什么 null ?
或是 !variable
哪裡會壞掉
什麼情況
也有可能是 typeof variable === "undefined"
你多久没碰了啊?
或是 variable == undefined
typeof🌚🌚🌚🌚
[sticker](media:AAQBABOgsO8vAARhp36YGlBDtPo1AAIC@telegram)
typeof null == object
现在很少业务会用这个了
多亏了 let object
剛好我用DB像殘廢一樣...
所以想好好練習一下啥的...
🌚 没人陪我写 editor ...
我想來看看Rust
umm...我目前目標是一個人完成一個比較大些的專案...
editor 啦
你以为 editor 很小的专案
你用什麼語言?
你不知道咩?
哈斯Kill?
[photo](media:AgADBQADs6cxG_rTcVVTC0bEN3ZuZZZEyjIABIoxlmlc5q4gNkIBAAEC@telegram)
🌚 后端用 Haskell, 前端使用 Electron-shell, 简单的 JS 渲染界面然后启动 Rust 来处理任何的东西
我還有IPTABLE...感覺支票開有點多(X
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
[sticker](media:AAQFABPCFb4yAASis36HPWzEGPUQAAIC@telegram)
这里的 Rust 没那么简单,其实是有注册在 Node V8 里面,用 V8 的垃圾回收机制来处理我的 Object
我沒把握完成那種東西耶...
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
不过也没有什么垃圾好收的,因为我的是一个 Object 一个窗口
就算完成了我也很難保證我完成那部分的穩定度...
然后前后端通过 RPC 传资料
🌚 有插件机制哦
[sticker](media:AAQEABMJ_4owAAQ6sFsv6B8tNToXAAIC@telegram)
现在欠 UI/UX designer
前端又不是我的專長...所以我根本爆炸QAQ
🌚👉 神经病患者的 Code editor
理论上就是要跑得快,小,而且吃内存小
而且不容易出错误,从我用 Haskell 和 Rust 就是这样
Electron-shell 的 JS 基本上就是给我用来 bootstrap 整个二进制文件的,而我写得能够有效利用 V8 的 GC
所以,why not
然而你用到 JS
我沒把握阿XD
Good game, well play
[sticker](media:AAQFABNDkb8yAATaLsE9OJaHK28pAAIC@telegram)
[sticker](media:AAQFABPCFb4yAASis36HPWzEGPUQAAIC@telegram)
没办法,因为 electron shell 就是内置 node
結果 Rust, Haskell 的效能都白費
你帮我写一个啊
其實我也有想過用 Servo 替代 Electron
什么鬼?
你遇到什麼問題?
Servo 你真正用过嘛?
沒有,因為我除了官網以外我看不懂
那我的问题你也看不懂
用單一語言幹的後台跟一堆語言幹的後台感覺後者我會很有障礙
你的逻辑有点……
一種後端夭壽快,前端卡死的概念
🌚 我都不是用 JS 管理 DOM
我到現在還是很好奇為什麼 Atom 可以這麼卡,因為都用 JS 做處理?
🤔
只要选对数据结构,JS 和 Rust 的区别你根本察觉不到
我也是QwQ
[sticker](media:AAQBABOgsO8vAARhp36YGlBDtPo1AAIC@telegram)
因为 Atom 的大型可变字符串的渲染特么靠北
而 VSCode 写得异常鬼畜
Haskell的特點是啥
满满的 closure
上网找
一堆的箭頭
FP?
我在这里说整个就变成了传教士了
除非你要我传授你传教士体位
我很喜歡你螢幕截圖把 => 轉成箭頭的那個
很有趣 🌚👉
那這樣問好了
和rust哪裡不同
类型系统非常前沿
而且优化得很 aggressive, 深度优化你的代码。前提是你选对数据结构
你所謂的數據結構是什麼?
不直接控制内存,但是很抽象的用惰性求值来处理很多东西
打个比方
可惡...對這話題好有興趣又好想睡覺
你们写个字符串,会用到二叉树
但是二叉树不是持久化的
也就是说你们的数据结构通过改变自身来完成很多操作
但是这并不纯
所以你要在 Haskell 想啊,持久化的数据结构
🤔 不改變自身應該改變⋯⋯?
每次改变,都会创建一个新的树
但是每次创建一个树,你就会纳闷了,那么空间堪忧啊
所以你要用脑想很多状况啊
[photo](media:AgADBQADtKcxG_rTcVXCYzXjw6RIFqRFyjIABHpLqkZ5M9ETuEABAAEC@telegram)
所以 FP'er 发明了 Trie 树
空间效率非常高
這張圖你昨天是不是有在哪裡貼過?
我的后宫群啊
[photo](media:AgADBQADtacxG_rTcVXh80DMiM-1k0wlyjIABMFxe6g2HAoRvx8CAAEC@telegram)
和 B 树相比,每个节点都要放很多数据
例如父节点的位置
🌚🌝 我想要说的是,如果你的数据结构用的不是状态的话,通常都没有性能问题的
這感覺架構會很複雜 🌍🌍🌍
B 樹是什麼鳥
🤔
Balence 的二叉树啊
Binary Tree?
🤔
我这个更新的时候
[photo](media:AgADBQADtqcxG_rTcVWgn3RnPxziRq1EyjIABJOR-bYfn3HJ0T8BAAEC@telegram)
变成这样,蓝色的是新的,把 5 改成 beef
所以我 editor undo 的时候就方便了
在最顶端放我的 history id 就能够做历史回顾了
[photo](media:AgADBQADt6cxG_rTcVWtzz2DKFSvlu5KyjIABJHGh2ybI7xbDUEBAAEC@telegram)
插入也方便
🌚 数据重用
這東西畫成這樣
这就是选对数据结构的重要性,FP 的编译器比命令式的编译期更了解你的代码,然后很大程度地优化,重置你的代码结构
[sticker](media:AAQEABMJ_4owAAQ6sFsv6B8tNToXAAIC@telegram)
解释多了你也不懂,明天吧
[photo](media:AgADBQADtqcxG_rTcVWgn3RnPxziRq1EyjIABJOR-bYfn3HJ0T8BAAEC@telegram)
你從這張完全沒條理的東西
搭拉。
[photo](media:AgADBQADt6cxG_rTcVWtzz2DKFSvlu5KyjIABJHGh2ybI7xbDUEBAAEC@telegram)
[photo](media:AgADBQADuKcxG_rTcVX-Rwb-XxTrQVtDyjIABB5dxLFLxSiGukMBAAEC@telegram)
🌚 这张图了解嘛?
我可以理解成越上面資料量越大嗎?
你這張是數據重複利用還是怎樣 🤔
看見了。
[sticker](media:AAQCABObu1kqAASoZZRj_615GqsAAwI@telegram)
這些圖到底是誰畫的
嗯,最顶端的只是存这个树的讯息,其余的就是存指针,还有序号,一直排下去,到最底才是我们要存放的数据
這張看起來不怎麼方便
🌚 既然只存指针,那么那些父节点什么的不用理了
umm...我想想,應該有更棒的方法(?)
你修改单一节点的数据,就创建一个新的,然后指向之前的,而且不是修改的节点的节点咯
我在思考,如果有個交換層去緩衝然後整理這些資料的話會不會更好
🌚 很好
就是一層的功能不是處理,是把資料往裡面塞這樣
其实,这个数据可以安排一个 32 bit 的空间来存放节点
了解...
[photo](media:AgADBQADuacxG_rTcVVL17w4Zfy_W1c6yjIABL2uLgsSoF8PPUYBAAEC@telegram)
所以可以存放的东西多了
加上你用的是 int 类型就能够索引 32 个节点
可以有效地放入 cache
umm...了解
起床囉
三小
[sticker](media:AAQBABOgsO8vAARhp36YGlBDtPo1AAIC@telegram)
在 Node.js 裡面要用到 AJAX 都會用什麼?Superagent?
?
request
當然是 xhr
npm install xhr
和 XMLHttpRequest 用法一樣
但等等
xhr原來和request不一樣嗎
現在已經沒人用xml了吧 jquery ajax都已經在用json了吧
xhr 原来和 xml 不一样好吗?
哦,是我吗?!
😐 你会设计 editor 界面吗?
用什么写
[photo](media:AgADBQADyKcxGzAFcVUe5cZedTME94dWyjIABD74eqiwN4xNxkQBAAEC@telegram)
我的心聲
[sticker](media:AAQFABMC48syAATMvwKyaxxfSmgPAAIC@telegram)
当然是 HTML + CSS 啊 *笑*
好哦,感觉很好玩
🌚👉 我还以为大神要打什么字呢,原来是笑话啊
😐 你还用 jQ ?
還會用到阿
🌝👍 当然好玩,但是完成工作先
雖然沒用得像以前那麼宏偉了
说真的,没有东西能比jQ更简单了
真想看看有什么宏伟的 jQ 应用
虽然我最近开始用pure js代替jQ😒
以前我是寫一個個js Class去代表可重用的component
裡面就是一堆JQ
什麼MVC都是js Class和JQ加Mustache實現的(
幹真的
懷念以前的前端
媽的現在跟什麼鳥一樣
Webpack, Babel, React, Vue.js, Riot
我整個人都 Riot
[sticker](media:AAQCABObu1kqAASoZZRj_615GqsAAwI@telegram)
到底為什麼前端會變得這麼複雜
其实是一起用的
🌚 不要单纯看插件
你用 jQ 加 mustache 和 webpack 用也可以
加上 babel 也可以
optional man! 你不用这样折腾自己的
也可以單純只用 Vue.js 然後不要 WebPack
但是 JS 不用 Babel 根本自殺
[sticker](media:AAQFABNiX7MyAASOAkdGKFxNdIgFAAIC@telegram)
[sticker](media:AAQCABObu1kqAASoZZRj_615GqsAAwI@telegram)
那你之前不用 babel 是怎样活过来的?
我寫過最宏偉的JQ大概是這個(
拋棄掉很多功能活的
[photo](media:AgADBQADOq4xGxQNFwABi28OJ6R49nCLIcEyAASFY8t6-impW2zHAQABAg@telegram)
錯了
我討厭ES6(
😐 你们都错了,babel 不是让你用什么新奇的东西。
那你喜歡 ES7 嗎
[sticker](media:AAQFABMLf8oyAAQleZ3mRQsP_fohAAIC@telegram)
他只是一个 polyfill 让你转换代码成为兼容某个程度的 template
送你Linus的金手指
🌚 噗噗噗,为什么呢
[sticker](media:AAQBABOgsO8vAARhp36YGlBDtPo1AAIC@telegram)
因為更多坑?
[sticker](media:AAQBABOgsO8vAARhp36YGlBDtPo1AAIC@telegram)
😐 你觉得更多坑还是更少坑?
更多
[sticker](media:AAQFABNDkb8yAATaLsE9OJaHK28pAAIC@telegram)
k thx bye
gg
[sticker](media:AAQFABMjab4yAARy_ZB30657TLsQAAIC@telegram)
更新了
🌚👍
[sticker](media:AAQEABMP6nIwAARYwf-2YMtBYMYsAAIC@telegram)
我发现到,其实 Object 直接修改 prototype 操作很吃力
干脆创建一个新的 Object, 新的 prototype 好了
function () {
  let callee = this;
  callee ....
}
有性能提高嘛?
[photo](media:AgADBQADzacxGzAFcVX1_NbuGJAz_q9JyjIABBmQ26gtEd4QNUUBAAEC@telegram)
微软的人把 JS 当作 C# 写了
const可以是動態?!
hmm
什麼意思OAO
所以js const根本沒有優化性能?!
反正TypeScript也是他們的
你在说什么?
hmmm 我把它想成靜態語言了 我抱歉
不怪你 :3
今天回旧家寻找东西,发现了我小学时期傻傻买的两本书
结果一看今天,不得料,是霍金的书@。@
Penthouse
Playboy 杂志
[photo](media:AgADBQADqacxGzAFeVXom7wKu4TdHBwfyjIABJzRs24l2mI8GiMCAAEC@telegram)
那是侯只是看看而已,因为太深奥了
过后就弄丢了~~
所以现在有用嘛?
刚刚才要仔细阅读😂
虽然啊说里面的理论有些过时了,那个该死的黑洞
Require 可以這樣

var req = require('package')(dep);

在 Import 裡面有沒有辦法這樣?還是說一定要 Require?
没有办法
好吧
import 是 import, 使用是另一回事
難過
那個用戶點評看起來不在中間誒
有點右偏
感覺(
那是错觉,因为serach icon 偏左的关系
感覺很麻煩
去掉search' icon的margin right就好了

js玩太久,写回php会怕,我刚刚echo $username + " " + $password; 然后调试了5分钟,原来是用 ....
🌚
你不會直接 echo "$username $password"
忘记“” 的威力惹
干! 我把$_GET 全部写成 $GET_ 😂
JS 的 Sprintf 要用什麼?npm 的 sprintf?
🤔 你可以直接把 $_GET 寫成 _GET()
然後在 _GET() 裡面檢查 isset
如果你很常用到 isset 的話這是一個好方法
我怎么不知道这个@。@
_GET() 是自己建立的
不是內建的
function _GET($key) {
return isset($_GET[$key]) ? $_GET[$key] : null;
}
干!真棒
$username = _GET("username");
[photo](media:AgADBQADq6cxGzAFeVXeY1qn9lzNiwlWyjIABLf-iJboZWcdK0IBAAEC@telegram)
所以你就不用整天

$username = isset($_GET["username"]) ? $_GET["username"] : null;
看到我的。。。。
[sticker](media:AAQFABM1H74yAARw-0Rq3zyvE-QbAAIC@telegram)
用这个会谩吗?
不會
[photo](media:AgADBQADrKcxGzAFeVWWLxN1muTbdBpCyjIABGqSBNL0m9Idfj8BAAEC@telegram)
棒~!
🌚👍
function _POST($key) {
    return isset($_POST[$key]) ? $_PSOT[$key] : null;
}
🌚👍
FaceRig好潮...
你說剛出來就被做成 R18 本的那個角色嗎
蝦?
huh?
為啥我會覺得種花有點冤枉?
http://news.tvbs.com.tw/life/709013
WOW 做flash的用这招可以省工
誰還在做 Flash
傳統 WebGame 吧
中國那邊薛錢的 Web game 還一堆 Flash
卡通节目都是flash干的啊
還有什麼免費大禮包呢
😏 flash ...
你指的是影片的話⋯⋯還行啦。
如果是放上 Web 的喔⋯⋯
🌚
怎麼感覺好像是不同事🤔
以后的3d动画也很省工
阿凡达应该也是用这招吧
最近看到 FaceRig 好像都在說 A.I Channel
阿凡達用 Fla
F
F——
[sticker](media:AAQFABNDkb8yAATaLsE9OJaHK28pAAIC@telegram)
我说他用facerig
结合脸部表情和嘴部动作
如果把facerig塞进dota2里
Fucking Lots Asshole Shit Human(X
一定很生动
www
🌚 Avatar 出了名用 Linux 集群做动画的啊
还出了几篇论文
暫時還不能 null 吧?
[photo](media:AgADBQADracxGzAFeVWN3DcimxQo9JkmyjIABDi_nocJMsvgXyICAAEC@telegram)
简单的rest api 😂
我 PHP 快忘光了,PHP 有沒有 null
我記得有
有null啊
有 undefined 嗎
但不能當值吧
有?
null
可以吧?
最近才行,我好像還沒收到更新
<?php
$test['_string'] = "";
$test['_int'] = 0;
$test['_float'] = 0.0;
$test['_null'] = null;
$test['_arr'] = array();
$test['_obj'] = new \stdClass();

foreach($test as $key => $value)
{
    echo $key.": ";
    if($value == null)
        echo "is null\n";
    else
        echo "is not null\n";
}die();
?>

will give you

_string: is null
_int: is null
_float: is null
_null: is null
_arr: is null
_obj: is not null
我記得以前 PHP 5.x 就有了吧?
這不是基本型態嗎?
靠邀我現在太久沒寫什麼都忘了
$test['_null'] = null;
可行
PHP 真的是動態語言最佳典範
永生難忘的 Variable variable
🌚
🌚
還有 Type Hinting

function(int $number)
[photo](media:AgADBQADrqcxGzAFeVUb5tAtxXFzDy86yjIABNtbjOQx8baGREYBAAEC@telegram)
[sticker](media:AAQFABOaab4yAARw5hqISDK3QnUKAAIC@telegram)
新的語法糖
好像是 isset && !is_null 的簡寫?
PHP退散
去去PHP走
PHP很萬解阿(?)
PHP很萬解阿(?)
望向某堆Web Hosting
除了效能以外其實我看不太出來 Node.js 贏 PHP 哪裏
可能 Node.js 部署比較簡單吧
阿,還有 npm。
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
PHP有$
這句話我不認同
$$$$$$$$$$
所以才能做 Variable variable
var $ =
所以PHP才噁心
var vs $ 的概念
[sticker](media:AAQEABPnRHEwAATVr_YG3WUulzAuAAIC@telegram)
把動態語言發揮得淋漓盡致
所以才這麼慢嗎。
🤔
很破壞安全性欸
<=>
🤔 安全性在動態語言你不如說沒有 Type hinting 的 JS 更危險點
wwwww
這有什麼好笑的 🤔
[photo](media:AgADBQADsqcxGzAFeVVfJZX2XHNquZZRyjIABJaft0vY510aFUUBAAEC@telegram)
而且PHP只能寫給Web用阿
聽誰說
谁说的
他跟 Node.js 是一樣的東西
應該說
他跟 Node.js 是一樣的東西
也不是一樣,就是差不多的東西。
等等 我原本想說什麼
好 不是
我也只是笑笑
不能單獨 Host Server 之類的?
[sticker](media:AAQFABNgYb8yAARUinr-Ftw1CtIoAAIC@telegram)
这是第几代才有的?
等一下 我當機了
不過我後來其實發現 PHP 可以自己寫成一個 Server
PHP 7
慢慢來
Error
koru沒有回應
bug 1130
洨安.length
3nm
LOL
我終於在 YSITD bot 有個地位了
不是去靠阿帕契或者nginx?
LLO
好我剛剛吃到土
PHP 也可以像 Node.js 一樣自己 Host 不用 apache
PHP一次就一次
沒記錯的話啦www
兩次就要靠Session
[sticker](media:AAQFABOaab4yAARw5hqISDK3QnUKAAIC@telegram)
Nodejs一開始就是Server了耶...
[sticker](media:AAQFABPRgsoyAAR1KKvk0lMucPYyAAIC@telegram)
Node.js 一開始不是 Server 吧?
[sticker](media:AAQFABPRgsoyAAR1KKvk0lMucPYyAAIC@telegram)
umm?
Node.js 就是 JS
get一個網頁一次
[sticker](media:AAQFABOaab4yAARw5hqISDK3QnUKAAIC@telegram)
MCPE
你要在裡面 Listen :80 Port
都說我當機了
印象中 deep tg 也是
那個,我懂你的意思,你應該是說什麼鳥 CGI,PHP 是依照網址讀取腳本的
MCPE php 写的
然后?
s/ /\0server\0/
@S_ean 認為 @SooXiaoTong 的意思是: MCPE\0server\0php 写的
那是開port吧?
再get一次
(
mcpe server内核专属名称.phar
5k4u;41j4ruu.4
但是 PHP 也可以透過 Routing 或是自己 Host 來省去這種依照網址讀取 .php 檔案的麻煩
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
第一次听说
[sticker](media:AAQFABOoYMoyAARj7VDP07x1ESxAAAIC@telegram)
意思就是所有外來請求都會傳遞到 index.php 然後再由 index.php 去做處理,應該呼叫哪些 Class 或是 .php 檔案
類似這種感覺
喔喔
那不是mvc?
原來
那就
無視我剛剛講的
啊...... 索卡
有nodejs require的感觉
PHP的muti core比nodejs好?
回到原點,其實我真的很好奇 Node.js 除了效能以外贏過 PHP 哪裏⋯⋯
koru.koru/?OwO.php&Ow<
bug 1130
npm 絕對是一個大優點
koru.koru
bug 1130
應該說nodejs根本沒有muti core的設計php有對吧?
PHP 能够处理 async 还有 FFI ?
如果php 塞进jit里 == nodejs的速度
沒有Var Var
😅
話說 goo.gl 後台是什麼語言
GO ~~
PHP 的 async 就直接是開一個新的 Thread 了
感覺很肥很慢
经由js读取hash然后request吧?
始春
有什麼是 PHP 做不到的? 🌚
真棒
现在还没有任何一个语言能做到始春吧
那根本不是 async 了
Teameow 附档名 始春.tm
不然你就用 Shell 去呼叫另一個 .php 囉
搭拉,你要的 Async
🌚👉
Solved
这是我要的吗?
PHP worker == async 🌚
PHP 裡面超少用到 async 的
but !==
🤔 可是當用了有 async 的語言,就會用到一堆 async
🌚
到底是為什麼呢
因为要在异步环境保证有些东西按顺序完成
要按順序完成就不會搞異步了吧
那很SYNC
[sticker](media:AAQFABOaab4yAARw5hqISDK3QnUKAAIC@telegram)
不妙
先去了解 PHP 和 Node 的使用场景吧
那么要异步的使用同步的环境怎么处理呢?
现在是异步环境,用这个来保证顺序,而不是保证同步
在nodejs可以開childprocess然後跑完之後call結果
而你的同步环境,要怎样做到异步?
🤔
🤔
全卡在主processer真的高笑能
异步做到同步,只需要 async/await 保证顺序就行了
高笑能?
y
笑能
而同步的要做到异步,你需要生成器,还有 event looper 来管理线程跳转
然而你要同步就必須 Callback
你以为 callback 就是同步?
Callback是個好東西
我寧願預設就同步,也不要預設異步,然後花一堆時間在管理邏輯上
callback 也是通过续插入参数,保证顺序而已
C 也是 sync 吧🌚
哈哈
哈哈哈哈哈
然後就被卡死了
这就是你选择 Go 的原因?
[sticker](media:AAQFABMcDsoyAAQpk7VPpJNTCes_AAIC@telegram)
那其他語言怎麼實作 async 的🤔
處理中...然後GUI就不會動了
不是,是因為 Rust 太複雜。
用 Shell 呼叫
🌚👉
去看看 lua
🌚 PHP 啊
exec 很爽的
怕爆
你又怕爆,你又要手动管理逻辑,你很厉害
我跳到 Go 主要是因為從 PHP 換到 Node.js 感覺沒什麼驚喜
你要什么惊喜?
🤔 讓我想想⋯⋯不要一樣爛?
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
你又要惊喜又怕复杂
那你还是乖乖用 python 或是…… scratch ?
wwwwwwwwwwwwww
🌚 哎呦
Scratch不用Callback喔
Scratch 有 Callback?
我以為他只有單一流程
所以你不了解一个东西就在呛,套用你的思路来定义别人
可以Call back吧?XDDDD
那是肯定句
🌚👉 有 exec 就够了啦
怕什么?
不過scratch會變得很複雜XD
我的錯
[sticker](media:AAQFABNDkb8yAATaLsE9OJaHK28pAAIC@telegram)
www
我覺得 Node.js 就是大家一窩蜂衝過去當大型商業用途,

接下來發現要維護太麻煩,結果轉用 TypeScript,後來發現不如跳到其他語言
你讓我很害怕
我都不知道該不該繼續用 node 了
TS 只有 MS 用。而且维护太麻烦是因为?
nodejs幹大型商業用途麻煩在哪?
@YamiOdymel 求詳細
问 Yami 啊
🌚
我是不是每句話都該加註語氣 (疑問)
专业呛 Yami
除了code很容易被幹走之外
[sticker](media:AAQFABPRgsoyAAR1KKvk0lMucPYyAAIC@telegram)
每个语言后面都加句号。是最好的了。
是说code容易被偷?
TS 哪裏只有 MS 用 🤔
也有人在用 React + TS 的
好吧,那你觉得为何还是离不开 JS ?
你也沒辦法藏code阿,隨便找另一個寫nodejs的人
[sticker](media:AAQFABMyW8oyAASFnysj0U-QP6YtAAIC@telegram)
等你寫到後面你就會發現邏輯流要維護,

確認 this,然後 Object 是被 copy 還是指向原本的 object

prototype 什麼鳥的
[sticker](media:AAQCABObu1kqAASoZZRj_615GqsAAwI@telegram)
然後你還要被 ES 的一堆 syntax 摧殘
🌚 写法问题
維護喔...這根本人品吧(?)
PHP也不是?
一開始把Function寫好就好了啊
🌚 这就是你用 CoffeeScript 的原因?
Zend 好像可以
那你就不會把變數命名成 OwO 了
是啊
zend可以找专业的来解
贊同
因為我在寫的不是TMD大型商業專案
所以你用 CoffeeScript,就是因为你能够呛 CoffeeScript 的作者而不是 ES 委员会咯
有个人呛真好
反正 CoffeeScript 把你想要的东西编译成肮脏的 JS 代码
現在死了?
🤔 其實他們在 CS2 有把很多東西轉成 ES6 了
就让 CoffeeScript 的开发者来被 ES syntax 婊啊
🌚 还不是嘛……
为什么?
因为人多了,看得缺点也多了,坑补得多了
因為有些 ES6 Syntaxes 都已經普遍支援了?
难道不是嘛?
所以就拿掉一些奇怪的 Polyfill 了
还有很多奇怪的,破坏兼容的,破坏程序结构的函数都去掉了
现在坑少了你们就拿以前的东西来婊
坑少了?
你說 ES 坑變少了?
還是 CS?
不然?
ES 坑哪裡少了,不是越挖越多,然後把挖起來的東西拿去補一下以前的東西嗎
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
比。如?
🤔 Promise
Promise 就是用来取代 callback 的
結果還是一堆人用 Callback
[sticker](media:AAQFABNDkb8yAATaLsE9OJaHK28pAAIC@telegram)
还有保证 callback 能够处理 corner cases
怪 JS 咯
怪 JS 咯
这也算坑
[sticker](media:AAQEABPnRHEwAATVr_YG3WUulzAuAAIC@telegram)
使用者错误也能算坑
縱容使用者犯下錯誤的語言就是坑
callback => promise (处理错误)
callback => async/await (处理顺序)
看看 PHP 被寫的那麼糟也不是沒理由,因為太寬容
但是只有一个错误啊,callback
然後太坑
🌚👉 你这样说,C 也是
C 更危险,带错误还能跑,不懂何时何地爆炸
[sticker](media:AAQCABObu1kqAASoZZRj_615GqsAAwI@telegram)
我现在的思路 PHP 》 async 》callback 》C async 》 PHP 》TS 》react TS 》nodejs 》 zend -》ES 》 callback 》 promise 》 C
干@。@
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
刚刚一口气读完118 条讯息的总结@。@
[sticker](media:AAQBABMfue8vAAQP7Rcavf6GObIzAAIC@telegram)
爽不爽
cb不能說是錯啊
PHP的Var Var才能算吧
因为人家能够说的坑只有这个了,算他吧
這坑還不夠大麼
怪 JS 咯
JS 的 Callback 能玩上幾十年
使用者错误也能算坑
[sticker](media:AAQFABNDkb8yAATaLsE9OJaHK28pAAIC@telegram)
这个只是语法层面,然而有那么多技巧能够避免 cb 嵌套
偏偏还是要用 cb
所以Var Var
Meow Meow
JS JS
🌚
CB CB
作死就好了,还要给别人看你怎样作死,说这个是坑。
[sticker](media:AAQFABNIqL8yAAQiZSC93-4KTtoSAAIC@telegram)
callback 只是 API, 看你怎样用
[photo](media:AgADBQADtqcxGzAFeVV5JSkmJzl-u88eyjIABC3SVAnlZgVyyyECAAEC@telegram)
哦,原来要$$$
你能够 bind, 你能够 promise`,你能够 `async 宣告单一函数
你能够 bind, 你能够 promise`,你能够 `async 宣告单一函数
这是哪妹子的bug
你能够 bind, 你能够 promise ,你能够 async 宣告单一函数
@YamiOdymel 你平时写teameow的时候有用纸做草稿吗?
版面設計、
资料库呢
後期有具體概念就很少了
用脑想?
不會
用腦想,或是打成 Object 結構
怕,你不怕乱吗?
[photo](media:AgADBQADt6cxGzAFeVXLC5B5qyoIq8A7yjIABD-WESj3b6rmNEIBAAEC@telegram)
🌚
[sticker](media:AAQFABNPIL4yAAQk3kU984ZIQ3skAAIC@telegram)
mongoose 也差不多是这样的
如果是php呢
$this->table->column('test')->varchar(32)->primary()

->create('test_table');
[sticker](media:AAQFABP5jb8yAAT7nNYJXONHeUMqAAIC@telegram)
@.@ PHP-MySQLi-Database-Class
我忘記寫文件了幹
Hoff 超好用的
$this->hoff->column('test')->tinyint(1)

->column('test2')->smallint(1)

->column('test3')->mediumint(1)

->column('test4')->int(1)

->column('test5')->bigint(1)

->column('test6')->char(1)

->column('test7')->varchar(1)

->column('test8')->binary(1)

->column('test9')->varbinary(1)

->column('test10')->bit(1)

->column('test11')->tinytext()

->column('test12')->text()

->column('test13')->mediumtext()

->column('test14')->longtext()

->column('test15')->tinyblob()

->column('test16')->blob()

->column('test17')->mediumblob()

->column('test18')->longblob()

->column('test19')->date()

->column('test20')->datetime()

->column('test21')->time()

->column('test22')->timestamp()

->column('test23')->year()

->column('test24')->double([2, 1])

->column('test25')->decimal([2, 1])

->column('test26')->float([2, 1])

->column('test27')->float([1])

->column('test28')->enum(['1', '2', '3', 'A', 'B', 'C'])

->column('test29')->set(['1', '2', '3', 'A', 'B', 'C'])

->create('test_table1');
打广告?
$this->hoff->column('test')->tinyint(1)

->column('test2')->smallint(1)

->column('test3')->mediumint(1)

->column('test4')->int(1)

->column('test5')->bigint(1)

->column('test6')->char(1)

->column('test7')->varchar(1)

->column('test8')->binary(1)

->column('test9')->varbinary(1)

->column('test10')->bit(1)

->column('test11')->tinytext()

->column('test12')->text()

->column('test13')->mediumtext()

->column('test14')->longtext()

->column('test15')->tinyblob()

->column('test16')->blob()

->column('test17')->mediumblob()

->column('test18')->longblob()

->column('test19')->date()

->column('test20')->datetime()

->column('test21')->time()

->column('test22')->timestamp()

->column('test23')->year()

->column('test24')->double([2, 1])

->column('test25')->decimal([2, 1])

->column('test26')->float([2, 1])

->column('test27')->float([1])

->column('test28')->enum(['1', '2', '3', 'A', 'B', 'C'])

->column('test29')->set(['1', '2', '3', 'A', 'B', 'C'])

->create('test_table1');
超讚
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
感觉很@!#!¥!
$this->hoff->column('test')->varchar(32)

->column('test2')->varchar(32)

->primary(['test', 'test2'])

->create('test_table4');
很清晰明瞭對吧 🌚
$this->hoff->column('test')->tinyint(1)
   ->column('test2')->smallint(1)
   ->column('test3')->mediumint(1)
   ->column('test4')->int(1)
   ->column('test5')->bigint(1)
   ->column('test6')->char(1)
   ->column('test7')->varchar(1)
   ->column('test8')->binary(1)
   ->column('test9')->varbinary(1)
   ->column('test10')->bit(1)
   ->column('test11')->tinytext()
   ->column('test12')->text()
   ->column('test13')->mediumtext()
   ->column('test14')->longtext()
   ->column('test15')->tinyblob()
   ->column('test16')->blob()
   ->column('test17')->mediumblob()
   ->column('test18')->longblob()
   ->column('test19')->date()
   ->column('test20')->datetime()
   ->column('test21')->time()
   ->column('test22')->timestamp()
   ->column('test23')->year()
   ->column('test24')->double([2, 1])
   ->column('test25')->decimal([2, 1])
   ->column('test26')->float([2, 1])
   ->column('test27')->float([1])
   ->column('test28')->enum(['1', '2', '3', 'A', 'B', 'C'])
   ->column('test29')->set(['1', '2', '3', 'A', 'B', 'C'])
   ->create('test_table1');
这样下去不行唉,我中yami的毒了
Rolf Hoff
🌚👉
有人聽得懂嗎
一個單字
我猜這裡 95%+ 都用過他的縮寫
Answer🌚
讓他說中文失敗qq
[photo](media:AgADBQADuacxGzAFeVXmiAuERdpcoCBXyjIABPA0PoOCHRfm5kMBAAEC@telegram)
哦~干!
[photo](media:AgADBQADuqcxGzAFeVUwnEg_Bt8Z5RFTyjIABIM68tq0IDhqdUMBAAEC@telegram)
[sticker](media:AAQFABPAF74yAAQJUY28TkqT0UgQAAIC@telegram)
🤔
ggez
ezpz
[photo](media:AgADBQADvKcxGzAFeVXjjg98IpBJkz8cyjIABBAddR4a6IsymSICAAEC@telegram)
這是類似Perl的語言嗎?所以不用定義變數類別
[photo](media:AgADBQADvacxGzAFeVW1NoUY-A_pDRwiyjIABFIe99JnAV6DFSACAAEC@telegram)
左邊是 CoffeeScript,右邊是生成的 JavaScript
打錯字就GG
才不會w
[sticker](media:AAQFABNFNL4yAAQRzPjCtAjSaJACAAIC@telegram)
我比較習慣看右邊的格式,大概是大學以來都學右邊這樣的架構xd
++
左邊那個寫久了就知道優勢了嘛w
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
[photo](media:AgADBQADvqcxGzAFeVVmWe-SpTr3yStNyjIABCgEYMNM3xSPQUMBAAEC@telegram)
[photo](media:AgADBQADv6cxGzAFeVX1XIiO1UOTJSYeyjIABE-M3aBttkXQpiYCAAEC@telegram)
[photo](media:AgADBQADwKcxGzAFeVWOVVhz_nh7_JhXyjIABODFLDf65KdVe0QBAAEC@telegram)
有沒有覺得簡單多了
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
可是我全部看不懂🙈
是我龍眼還是我覺得一樣簡單好了解?
[sticker](media:AAQFABNDkb8yAATaLsE9OJaHK28pAAIC@telegram)
如果說螢幕裡那些code塞滿我或許會比較喜歡coffee script
就跟寫html有人喜歡用jade一樣
Jade 棒
Sass 棒
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
OSAS棒
🤔 ovuvuevuevue enyetuenwuevue ugbemugbem osas
wwwwwww
對XD
Jade棒
不 還有一個教召
你以為退了就沒事了嗎
報名系統