目前在微信公众号上更新,前 3 章是免费的,后面几章准备用付费阅读的方式,总体价格应该不超过 39 元。
您可以搜一下 百万架构师之道
好水的广告文
之前基于 esp32 做过一些 mruby 的东西,比起 python 来说生态还是差一些,不过应该说基础的能力已经具备了,就是开发环境搭建麻烦一些
都微服务了,肯定不是普通团队了
不满足condition A
就直接返回了
代码简洁之道里面说的,不建议每步都 return,而是先把值赋给一个变量,然后最后 return。
def show
status = 400
is_success = false
msg = "condition B fail"
unless condition_A
# 跳到 render 400 并返回一个 A 报错
end
unless condition_B
# 跳到 render 400 并返回一个 B 报错
end
unless condition_C
# 跳到 render 400 并返回一个 C 报错
end
if all_ok
status = 200
is_success = true
msg = "All ok"
end
render :status => status, :json => { :success => is_success, :msg => msg }
end
考虑到系统运行的效率,尽早 return 其实更好。
attr_access :status, :is_success, :msg
def show
render_failed_in_condition_a and return unless condition_a?
render_failed_in_condition_b and return unless condition_b?
render_failed_in_condition_c and return unless condition_c?
initial_default_response
set_success_response if all_ok?
render :status => status, :json => { :success => is_success, :msg => msg }
end
private
def render_failed_in_condition_a
render :status => 400, :json => { :success => false, :msg => "condition A fail."}
end
def render_failed_in_condition_b
render :status => 400, :json => { :success => false, :msg => "condition B fail."}
end
def render_failed_in_condition_c
render :status => 400, :json => { :success => false, :msg => "condition C fail."}
end
def initial_default_response
status = 400
is_success = false
msg = "unknown condition fail"
end
def set_success_response
status = 200
is_success = true
msg = "All ok"
end
```
大概这个样子比较好了,当然还有优化的空间。比如说所有40X,50X的可以继承Exception,然后作为异常抛出。
代码优化对于业务来说有最优解,单纯的从代码层面来看总是会有一些优化空间的。
放在一个 repo 里方便开发测试,一般来说不会动别人负责的模块。现实中的例子就是各个部门在一栋楼工作,方便沟通协作,但是你不会去干跨部门的活
服务无状态化并不是说服务不会修改数据库内容,而是服务本身不储存状态。比如 session 等。
咱说的不是一回事
我有个 tb.dog
还有这待遇?
这个邮箱后缀不明觉厉
现学现卖:
这个是反例:
<input type="button" id="btn" onclick="alert('Test')" />
下面这个就是Unobtrusive JavaScript
:
<input type="button" id="btn" />
var el = document.getElementById('btn');
el.onclick = function(){
alert('Test');
};
代码的优化,出发点都是可维护,可扩展;显然下面这种维护性好了很多,不过上面的那种可读性要高很多。
有时候,其实是种取舍。
加油~
新手可以用 Docker 试试。对于一个初学者来说,不单单缺少的 Ruby 相关的知识,包括对系统的认识都是欠缺的。不过大家都是这么过来的,坚持就好了。
我觉得所谓的黑客精神就是一种不放弃的精神。一直努力去解决就好。事情本来就没那么容易。
如果有条件可以入手一台 Mac,方便快速上手。Windows 自带的 Ubuntu 也挺好。
最主要的是放弃急功近利的思想。
庭外和解
你这个和他的差别也太大了
感觉这个应该算个民事案件吧。。。。
其实,只要学会三点,就可以超过身边很多程序员了:
如果能做到以上三点,不管水平高低,别人看你的代码,肯定少了很 WTF。
说个题外话,我觉得人和人最大区别,可能就是是否有黑客精神(我认为的黑客精神,就是专研精神,不达目的不罢休的精神)。
已经找到合适的人了,谢谢大家
这个问法本身就有问题。。。 我同意@zzz6519003 的观点
Cookie-based Session 就是客户端的 session?那就是 cookie 啊。。。
二级有点浅,理论上如果你考一个 4 级证书,相当于读了一个计算机本科
考一个全国计算机等级考试 3 级及以上的证。3 级考试应该有很多不同的方向,选一个自己感兴趣的。
已更新
Matz 在去年郑州的 Ruby Summit 上分享过,他说他永远不会在 Ruby 中添加类型,假如添加了,他肯定会后悔
@Thomas 在Ruby is DEAD
的谣言下,能分享一下为什么学 Ruby 吗?
其实这两者并不冲突。技术实力可以让人有更多的选择的权利。
理论上我们要把某个第三方库引入项目的时候,我们需要:
一旦确定使用以后,还要时刻关注第三方库的更新,尤其是安全更新
事实上,受资源以及时间限制,可能大家最关注的只有 2,3 步
继续招一名全栈,清明节回河南的约~
太片面了