V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nine  ›  全部回复第 26 页 / 共 34 页
回复总数  675
1 ... 18  19  20  21  22  23  24  25  26  27 ... 34  
2015-01-01 03:58:56 +08:00
回复了 Imshaha 创建的主题 程序员 这时候,大家都还在代码么?😏
@lyf362345 功力好强!
2015-01-01 02:54:10 +08:00
回复了 wangxiaoxiao 创建的主题 Python 动态语言的好处是什么?
python不太了解,以下特性不知道在java里有没有

-------------------------
php中
1 变量的变量
$foo()
(new $bar)->$boobar()
根据的变量的值来运行某个函数/方法,这些是动态的,

2 __call($method_name , $params)

如果有一堆 “find_by_字段名” 的方法,
都是要生成 select * from table_name where 字段名 = '$params'的语句,嫌麻烦怎么办

可以在类里定义 __call($foo , $params) {
正则提取$foo , 如果含有 "find_by_(.*)" ,那么根据正则匹配的字符,执行语句
}

(具体用法其实很多,好久没写了,一时想不起来。这个用法从架构设计上,我其实觉得不怎么智慧)

注意,事实上这里并没有生成真正的method

--------------------------

而“运行时改变其结构”,还是要看ruby了

1 ruby元编程最最最最核心的、经典的“打开类”
class Foo
def bar
puts 'bar'
end
end

class Foo
def foobar
puts 'foobar'
end
end

这样写不会报错,不是重复定义类,而是把类打开了,重新给类追加了一个方法(也可以是覆盖)。
(用法,可以根据input的不同,选择添加动态添给类加哪些方法。)

所以也可以在任何位置,修改任何库的的方法。
你觉得哪个库不好用,require 之后,立刻在你的代码里“打开类”,并修改其内部实现,以完成你的需求(这称之为 monkey patch)
monkey patch很强大,也很容易造成混乱,是把双刃剑,也是ruby最“动态”的地方之一。

重要的一点,是你可以修改任何核心库的内部实现(把runtime搞挂是很easy的事,这个有点类似于js的prototype。“prototype.js”库也是rails团队做的,得名与对prototype的patch,其实是用ruby的思维方式写js,其实不是很好,所以也边缘化了)


2 instance_eval() 类似“打开类”,但是可以方便的把外部的变量带进去,并访问内部属性(ruby的实例属性都是私有的,没有public)

3 block 代码块
method不但可以传入参数,还可以传入一段代码 do end 之间的代码
而method运行时,内部的x, y , z 变量可以在传入的代码中运行。

object.foo(params1 , params2) do |x , y ,z |
#x = x + 1
#y = x + z
end

4 代码块可以保存在Proc对象里,用以延迟执行

5 用send() 给method发消息
用于动态调用方法 类似php里的 ${foo}()


6 method_missing() 类似php 的__call()
没有生成真正的method

7 define_method() 动态定义方法
功能类似method_missing()
但是定义的位置和时机更灵活
而且这里生成的是真正的method

比如有一个二维hash,里面的键值都不一样,可以根据里面的键值,来生成对象,并动态定义他们的method
curl -I http://www.lagou.com
HTTP/1.1 200 OK
Server: nfs/1.0.0
Date: Tue, 30 Dec 2014 11:30:27 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 262142
Connection: keep-alive
Vary: Accept-Encoding
REQUEST_ID: d317b811-77d7-44aa-a53a-6156d1f124ac
Set-Cookie: JSESSIONID=891125ED1E427CD5241BEBE8679E6CF6-n2; Path=/; HttpOnly
Set-Cookie: usertrace="e4cd53e1-aa6a-48f1-9073-025ef1700966@d3d3LmxhZ291LmNvbQ=="; Version=1; Domain=.lagou.com; Max-Age=31536000; Expires=Wed, 30-Dec-2015 11:30:26 GMT; Path=/
Content-Language: en-US
2014-12-30 19:27:21 +08:00
回复了 arrowna 创建的主题 程序员 写桌面程序,学 Qt 和.Net,哪个性价比高?
aauto
2014-12-27 19:15:08 +08:00
回复了 Tianpu 创建的主题 程序员 推荐个模版引擎?
2014-12-27 19:13:14 +08:00
回复了 pertersonvv 创建的主题 程序员 PHP 和 Ruby,哪个更有前途呢?
@msg7086
没错
Laravel本来就是抄Rails,干嘛用山寨货而不用真身。
2014-12-26 12:16:05 +08:00
回复了 pertersonvv 创建的主题 程序员 PHP 和 Ruby,哪个更有前途呢?
@pertersonvv 写了啊 今年转的 1年
2014-12-26 11:56:43 +08:00
回复了 pertersonvv 创建的主题 程序员 PHP 和 Ruby,哪个更有前途呢?
@lang1pal
如果09年的时候,国内ruby社区是现在这样的,如果09年的时候身边有用mac的人。我一定不会学php。
当时看到书架上满满的各种“敏捷开发 ruby on rails”,扫了一眼,只是觉得很奇怪,php一统天下的现在,这玩意是什么?
而我始终没有拿起一本来看,懊悔不已,当时只有“php大法好”。

而经过多年纠结今年彻底下定决心转了ruby,整个世界清爽了。
2014-12-26 00:41:19 +08:00
回复了 pertersonvv 创建的主题 程序员 PHP 和 Ruby,哪个更有前途呢?
Rails完爆任何web框架,而ruby语言本身又完爆php

从找工作上来看php大把,ruby少一些。
但是这么多职位也够你跳了,不是么?

http://www.lagou.com/jobs/list_ruby?kd=ruby&spc=1&pl=&gj=&xl=&yx=&gx=&st=&labelWords=&lc=&workAddress=&city=%E5%85%A8%E5%9B%BD&requestId=
所以从一年前正式转ruby了
2014-12-19 02:29:25 +08:00
回复了 sneezry 创建的主题 程序员 今天收到一封百度的邮件,想骂人
前些天我还收到过墨迹天气推送的 “测试” * n
2014-12-13 13:45:48 +08:00
回复了 smilingsun 创建的主题 Linux 给为知笔记( WizNote)点个赞,顺便帮他们打广告!
一直在用
从Windows 到Android 到 IOS到mac
不过vip和手环没需求
2014-12-13 05:29:30 +08:00
回复了 Livid 创建的主题 程序员 CodeRunner 2 发布, MAS 版本用户可以免费迁移
ruby补全只是Basic。。
@laoyuan
good! 我也去找个自习室试一段! :D
问下楼主,自习室里有没有暖气?
2014-12-05 15:16:24 +08:00
回复了 linus 创建的主题 问与答 信用卡哪家好?据说招行不错,平安呢? PS:本人刚工作
@webjin 办公楼下有花旗办卡人员,以卡办卡直接给了64K额度
做事一定要走极端,希望LZ坚持下去
2014-11-29 22:53:03 +08:00
回复了 Sunyanzi 创建的主题 PHP 好像不自觉就写了难以维护的代码 ...
不好意思,拼接字符串符号习惯写成 + 了
2014-11-29 22:50:44 +08:00
回复了 Sunyanzi 创建的主题 PHP 好像不自觉就写了难以维护的代码 ...
三元不要嵌套啊!
其实嵌套也可以啊!但你里面的拼接那么长的字符串是要闹哪样啊!
放到外面声明一个变量啊!字符串拼接一定要用 "{$foo} foo bar {#bar}"的方式啊!不然怎么读啊!
三元的层次要分好啊!怎么能允许2个“:”在同一行啊!
其实三元嵌套放在一行也可以的啊,你要把那一坨字符串声明成变量啊,其实就是你拼接字符串的问题啊,你这么拼怎么读啊!,剩下的三元嵌套即使放到一行里面也没人说你啊!

为什么看起来像一坨?其实完全就是你拼接字符串搞得鬼啊!
受不鸟了啊!啊!啊!啊!啊!
十万个冷笑话吐槽星人放元槽弹了啊!

最后一行改成这样舒服多了
http://ww1.sinaimg.cn/large/620ae61atw1ems961a3h5j213w0odq5x.jpg
2014-11-23 00:49:19 +08:00
回复了 jason52 创建的主题 程序员 射手网关了。。。。
不会吧,我今天刚下了个盗梦空间的字母。。
1 ... 18  19  20  21  22  23  24  25  26  27 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   953 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 20:05 · PVG 04:05 · LAX 13:05 · JFK 16:05
Developed with CodeLauncher
♥ Do have faith in what you're doing.