- 浏览: 25847 次
- 性别:
- 来自: 北京
最新评论
-
tuti:
敏捷和传统的编程方式相比,在概念模型上较为复杂而不容易被人理解 ...
敏捷和传统的编程方式相比,有什么缺点? -
pdckxd:
我就职于一家知名外企,一个cloud项目里敏捷开发被滥用,开发 ...
敏捷和传统的编程方式相比,有什么缺点? -
stone0660:
谢谢你的文章,简洁明了。让我快速了解了scrum的概要。
Scrum 摘要 -
peacock:
python好是好,就是语法很别扭,有点像vb
python vs ruby -
ychael:
ruby在理想的世界是理想的
python在现实的世界是理想的 ...
python vs ruby
文章列表
python的结构体(包括class,function 和class 实例)和javascript的结构体(Object和function)实现有些相似,也有些不同。
python的class对数据和函数的存储都是维绕着__dict__.
对象的属性和方法都存在里面。
而javascript的对象(Object或function)应该有两个hash存储数据,一个是prototype,一个是xxx(现在还不知道叫什么, 存储对象自己的方法和数据)。也是数据和方法混合存储。
对于对象的实例方法的搜索,二者也是差不多。
python中:
class Dog():
def spark(self) ...
1.python是弱对象语言, 而ruby是纯对象语言
python可以没有对象运行,但是ruby的根基就是Object。
而且python对于封装的约束比较弱,而ruby相对较强。
比如一个class的实例dog。
python:dog.name = "dogy" 相当于给dog赋予了一个属性
ruby: dog.name = "dogy" 报错,dog没有name属性。
2.继承的实现不同
python的结构就是一个dictionary, 不论是class还是function,只要不是基本数据类型,内部的就够都是key,value形成的字典结构。函数 ...
class Dog
def include_mod # not workable
include Mod
end
def self.include_mod #workable
include Mod
end
end
module Mod
def shat
puts "shat"
end
end
dog = Dog.new
dog.class.include_mod
puts Dog.instance_method :shat
dog.include_mod
#'include' is a method belongi ...
一个请求来了以后,首先是ActionController。
ActionController是rails的控制中心,它本身是一个module,module 里面有一个base类,所有的controller,包括ApplicationController都继承base。
base的主要职责是,解析请求的参数,执行filter,执行action,最后,也是关键的一步,
调用ActionView.base.new得到一个解析template的对象,由ActionView.base完成template的解析。
在ActionController这个module之中由很多其他相关的module被base ...
*ruby 之间的引用全部是源代码的引用,为了规范类库的管理,gems出现了。
gems是ruby源代码管理工具,代码按照一定的目录结构被组织成一个lib。
比如:rake, rails, rcov都有gem版本。
安装一个rake gem只需要执行 gem install rake. rake 的源代码被下载下来以后被放到了一个特定的位置。也可以下载rake.gem 通过执行 gem install rake.gem来手工安装。
那么如何使用呢?
require 'rubygems'
require 'rake'
这样就可以了。
前面的文章我说过ruby里的LOAD_PATH, rubyge ...
Scrum 摘要
Scrum 理论是基于一个国外的学科,叫《过程动态学,建模及控制》,什么意思呢?过程控制方法有两种:预定义过程控制和经验性过程控制。预定义过程就是在执行之前先要制定详细的计划,然后严格按照计划执行,这 ...
今天有人问道一个问题: 敏捷和传统的编程方式相比,有什么缺点呢?
大伙来回答一下
这次想谈谈中型规模项目的分工问题。
一个40人规模的项目,需要分成4个团队,CS系统。
这4(A,B,C,D)个团队每个团队负责一个子项目,团队的分工可以有两种,
一种是横向分工,团队A负责domain logic和OR maping,其他的几个团队分别负责自己的上层模块,这样的话,就是B,C,D依赖于project A。
一种是纵向分工,A,B,C,D四个team都有自己的功能模块,每一个模块都包括了domain和view层(假设系统只有domain和view)。
两种分工各有优缺点,
横向分工会造成其他的3个project对domain project的严重依赖,team在开发过程中发生 ...
极限编程中,有一项实践是pair programming, 是说两个dev在一起programming,用一台机器,两个显示器,两套键盘鼠标。在agile中,人们对TDD 和 CI的质疑比较少,基本上还是赞同的。
但是对于pair programming, 却存在很多的质疑,到底 ...
ruby语言的根本就是 Object,Module, Class这三个对象。而且Module,Class本身就是对象。
在任何的Object中,方法和属性是分别存储在不同的hash表里的。
而对于javascript 其根本就是一个hashtable和function。
除了一些基本类型以外(bollean, number, string),其他的东西都是Object, Object就是一个hashtable。
所以, a = {}, 和a = new Object() 是一样的。
Object中的hashtable存放变量和方法。 也就是说, 变量和方法都是存储在Object的同一个hash ...
ruby 中所有的东西都是对象,包括一些基础的Object,Class, Module。
可以把ruby中的类和实例都统一的理解为实例。像Class这样的特殊的实例,因为有new方法,所以可以产
生新的实例。
既然所有的东西都是实例,那对于新实例的产生和新类的产生是如何工作的?
instance中的方法和变量分为2部分,一部分叫object 方法,一部分叫instance 方法, 变量也一样。
所以,当用new产生新的实例的时候,mother instance 中的instance methods 被用链接的方式copy到child instance 中, 作为child instance 的 ...
$LOAD_PATH in ruby.
$LOAD_PATH in ruby is similar to class_path in java.
class_path contains many jar position.
every jar has its own structure leading to a java File.
$LOAD_PATH contains many ruby lib position.
usually, in lib directory, a directory containing different ruby Files can be found.
f ...