本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【组图】「人工智能」关于扎克伯格的 Jarvis 的几点分析和小扎代码的code review(2)

时间:2017-01-05 03:31来源:天下彩论坛 作者:开奖直播现场 点击:
看到这段代码,我想很多程序员哭笑不得。首先代码逻辑有点hacky,初步判断应该是 JARVIS_FACEREC 没来得及完成。。。所以赶鸭子上架暂时用 RC_MODEL 来顶上

  看到这段代码,我想很多程序员哭笑不得。首先代码逻辑有点hacky,初步判断应该是 JARVIS_FACEREC 没来得及完成。。。所以赶鸭子上架暂时用 RC_MODEL 来顶上;毕竟马上就Christmas和新年了,Zuck没做完也要先赶在deadline之前发布嘛。

  注意!我觉得这个态度和做事方式才是对的, 不要拖,也不要等到完美的时候才发布,因为一个项目一个作业永远都无法达到你想要的完美状态。正如Zuck自己之前在Facebook里强调:“Done is better than perfect!”

  4

  idx是一个helper method,其实就等于 $api_config['detection_tier'],但是用idx的好处是如果 $api_config 为空,那么 idx 不会崩溃,而是返回null,而 $api_config['detection_tier'] 直接触发异常。

  所以这里回头看,Zuck的80行写得并不好,最好写成:$api_config = idx(api_config, 'facer'); 对了,idx还可以支持第三个参数,就是默认值;如果这个key在map中没有的话,就直接返回默认值。

  5

  这句是技术含量最高的一句。FaceDetectRequestConfig::gen,这里gen代表generator,由于历史原因,Facebook的代码用的是generator,所以异步操作就起名gen;但是这里用的是新的 resumable function;也就是 ::gen 返回一个 awaitable object(类似promise,如果你玩js或者其他语言),然后前面的await就将异步操作出发执行,最后得到从 detection_tier 来的 config。

  具体关于 async & await,以及 resumable function 可以参考:

  

  (这里PHP中的resumable function是Facebook自己做的语法加强;C#里一直就有,而C++会在下一代的C++1y里引入 resumable function)。

  6

  print "Configured...n" 这句话太萌,典型的学生项目代码。

  类似于: console.log(xxx)

  或者 :System.out.println("Configured...)

  再或者:NSLog(@"Configured...");

  要是公司项目的代码这么写,估计要被tech lead直接骂死。不过这里Zuck敢于自己动手开始写代码,并且最后可以有一个prototype上线开始能够使用,已经非常厉害了(毕竟很多CEO一天到晚忙除了开会,几乎什么都做不了)。

  最后我个人认为Zuck那段代码的最佳形态是:(如果你们有更好的想法或者建议,欢迎留言讨论 :D)

  

【j2开奖】「人工智能」关于扎克伯格的 Jarvis 的几点分析和小扎代码的code review

  --- END ---

  希望这些细节让各位可以有启发。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容