SoShellon 2014-12-09
需要配置的环境
RubyMine
RubyMine是一个为Ruby(一种脚本语言)和Rails(一种框架)开发者准备的IDE(IntegratedDevelopmentEnvironment)集成开发环境),其带有所有开发者必须的功能,并将之紧密集成于便捷的开发环境中,号称最智能的Ruby和Rails的IDE,能够大大增加Ruby和Rails开发者的开发效率。
IntelliJIDEA
IntelliJIDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的。
Open-jdk-6.0
JDK(JavaDevelopmentKit)是Java语言的软件开发工具包(SDK)。openjdk是jdk的开放原始码版本
android-sdk
SDK:(softwaredevelopmentkit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,AndroidSDK指的是Android专属的软件开发工具包。
Ant
Ant是一种基于Java的build工具(编译工具)。当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,它的作用就是帮助这些工作的批量完成。
git是什么?
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
特点
分布式和集中式的最大区别在于开发者可以本地提交。每个开发者机器上都有一个服务器的数据库。
Git的功能特性:
从一般开发者的角度来看,git有以下功能:
1:从服务器上克隆数据库(包括代码和版本信息)到单机上。
2:在自己的机器上创建分支,修改代码。
3:在单机上自己创建的分支上提交代码。
4:在单机上合并分支。
5:新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6:生成补丁(patch),把补丁发送给主开发者。
7:看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8:一般开发者之间解决冲突的方法,开发者之间可以使用pull命令解决冲突,解决完冲突之后再向主开发者提交补丁。
Github
GitHub是最流行的Git托管网站,GitHub可以托管各种git库。
node.js
Node.js是一个可以快速构建网络服务及应用的平台。该平台的构建是基于Chrome'sJavaScriptruntime,也就是说,实际上它是对GoogleV8引擎(应用于GoogleChrome浏览器)进行了封装。
V8引擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
Rvm
rvm.ruby
rvm.rails
Rails是一个更符合实际需要而且更高效的Web开发框架。Rails结合了PHP体系的优点(快速开发)和Java体系的优点(程序规整),因此,Rails在其提出后不长的时间里就受到了业内广泛的关注。
以上是需要配置的环境。需要知道以上环境是什么。干什么用的。
常见问题
许多Ruby应用都使用RVM+RubyGems+Bundler来管理自身的执行环境,其中包括Ruby的版本管理和软件包(gems)管理
ruby是什么?
//Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/YukihiroMatsumoto)开发,遵守GPL协议和RubyLicense。
性质简介
Ruby是开源的,在Web上免费提供,但需要一个许可证。[1]
Ruby是一种通用的、解释的编程语言。
Ruby是一种真正的面向对象编程语言。
Ruby是一种类似于Python和Perl的服务器端脚本语言。
Ruby可以用来编写通用网关接口(CGI)脚本。
Ruby可以被嵌入到超文本标记语言(HTML)。
Ruby语法简单,这使得新的开发人员能够快速轻松地学习Ruby。
Ruby与C++和Perl等许多编程语言有着类似的语法。
Ruby可扩展性强,用Ruby编写的大程序易于维护。
Ruby可用于开发的Internet和Intranet应用程序。
Ruby可以安装在Windows和POSIX环境中。
Ruby支持许多GUI工具,比如Tcl/Tk、GTK和OpenGL。
Ruby可以很容易地连接到DB2、MySQL、Oracle和Sybase。
Ruby有丰富的内置函数,可以直接在Ruby脚本中使用。
rvm是什么?
RubyVersionManager,RVMisacommand-linetoolwhichallowsyoutoeasilyinstall,manage,andworkwithmultiplerubyenvironmentsfrominterpreterstosetsofgems.
翻译:RVM是一个命令行工具,你可以很容易的安装,管理,和译员多Ruby环境工作组的宝石。
看了一些资料,我总结rvm就是一个为了方便而开发的管理不同的ruby虚拟机的工具。
Gem是什么?
gem是一种rubygems命令,也可表示某个ruby软件包,rubygems是用于ruby程序和程序库的一套打包系统,它让开发人员可以把自己的ruby程序库打包成一种易于维护和安装的形式。rubygems对应的gem命令是用来安装ruby世界的第三方软件包。
Gemset是什么?
Gem集合(gemsets)gemset可以理解为是一个独立的虚拟gem环境,每一个gemset都是相互独立的。比如你有两个项目,一个是rails2.3一个是rails3.gemset可以帮你便捷的建立两套gem开发环境,并且方便的切换。gemset是附加在ruby语言版本下面的,例如你用了1.9.2,建立了一个叫rails3的gemset,当切换到1.8.7的时候,rails3这个gemset并不存在。
Bundle是什么?
bundle格式的文件是Unix/linux系统中的一种可执行文件。用户可以在终端中使用./***(文件名).bundle命令使其运行。必要时需要使用sudo执行以提供超级用户权限,并且需要提供管理员密码。
在android中bundle是一种传递参数的类。用于Android的Activity之间传递数据
bundler是什么?
bundler主要用于管理Ruby应用程序的依赖关系,并按照此依赖关系安装所需的Gems。当运行bundleinstall命令来安装Gems时,bundler会使用当前目录下的名为Gemfile的文件来处理依赖关系。
Gemfile是什么?
貌似是一个装gem文件的目录
我们的应用为什么可以跑在android上?
默认的情况下,每个应用都运行在自己的Linux进程里。当应用代码需要执行的时候,Andorid将会启动这个进程;不需要的时候就结束这个进程,然后释放其他应用需要的资源。
每个进程都有自己的java虚拟机,所以每个应用之间都是隔离运行的。默认情况下,每个应用都会分配一个唯一的Linux用户ID。同时赋予用户权限,于是应用文件对用户就是可见的了,但是仅限于自己的应用。当然也有办法把他们导入其他应用中。两个应用共享一个用户是可以,这种情况下,两个应用就可以互相访问其文件,可以节省一些系统资源,两个应用共享一个ID也意味着可以两个应用在一个Linux进程里运行,并共享虚拟机。
我们的html页面怎么跑在android上?
我们的html页面是怎么发短信的,背后的机制是什么?
haml是什么?
Haml是一种用来描述任何XHTMLwebdocument的标记语言,它是干净,简单的。而且也不用内嵌代码。Haml的职能就是替代那些内嵌代码的pagepagetemplatingsystems,比如PHP,ERB(Rails的模板系统),ASP。不过,haml避免了直接codingXHTML到模板,因为它实际上是一个xhtml的抽象描述,内部使用一些code来生成动态内容。Haml是一种简洁优美的模板语言,可以应用于RubyonRails、PHP等Web开发平台,可以大大缩减模板代码,减少冗余,提高可读性。并且Haml是一种完备的模板语言,没有牺牲当前模板语言的任何特性。
html是什么?
超文本标记语言(hypertextmarkuplanguage),标准通用标记语言下的一个应用。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言的结构包括“头”部分(外语:Head)、和“主体”部分(外语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
haml和html的区别和联系是什么?
Haml是一种简洁优美的模板语言,使用它之后可以大大缩减模板代码,减少冗余,提高可读性。并且Haml是一种完备的模板语言,没有牺牲当前模板语言的任何特性。
Haml的使用通常有两种方式:
一是作为RubyonRails的插件来使用;
二是作为一个独立的Rubymodule来使用。
因为Haml可以提升我们编写HTML文件的速度,同时避免一些不必要的语法错误,因此还可以使用Haml作为一个加速HTML编写的工具,当然前提条件是有一个能够快速的把HAML编译成HTML的工具
Haml的确让代码变得更短了,对于编写速度的提升目前还没有感受,因为,对于非常熟悉HTML语法的程序员来说,Haml的一些习惯还是会让我们填不少的坑,但是一个工具一定是在你熟练使用的时候才能提升你的效率,如果,对于Haml和Html5同样熟悉的开发人员,Haml的确是更有效率的工具。
使用haml的优势是什么?
haml可以大大缩减模板代码,减少冗余,提高可读性。编写速度可以更快,效率更高。
angular.js是什么?我们都用了他里面什么概念?怎么用的?
是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入,等等。
css,js,html之间的关系
js的加载顺序是什么?
页面上的Javascript代码是HTML文档的一部分,所以Javascript在页面装载时执行的顺序就是其引入标记<script/>的出现顺序,
<script/>标记里面的或者通过src引入的外部JS,都是按照其语句出现的顺序执行,而且执行过程是文档装载的一部分。
JSON是什么?
JSON(JavaScriptObjectNotation,javascript对象表示法)是一种轻量级的数据交换格式。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
MVC框架是什么?
MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
commit是什么?
COMMIT命令用于把事务所做的修改保存到数据库,它把上一个COMMIT或ROLLBACK命令之后的全部事务都保存到数据库。
commitcomments是什么?
Comment对象表示文档中注释节点的内容。
Comment节点表示HTML或XML文档中的注释。
使用由CharacterData接口继承的data属性,或使用由Node接口继承的nodeValue属性,可以访问注释的内容。(即<!--和-->之间的文本)。使用由CharacterData接口继承的各种方法可以操作注释的内容。
push是什么?
堆栈操作指令,实现压入操作的指令是PUSH指令;实现弹出操作的指令是POP指令.
提交流程是什么?用命令行怎么做?添加,修改,删除分别怎么处理?
branch是什么?
网络服务
gitrepository是什么?
repo为git工具的仓储,就是一个git工具的文件夹。。。并且里边有.git/的子目录
repo也是google为android开发的一套专门用来操作android代码的工具,通过manifest文件来批量下载git仓储(repo)及仓储内的代码,因为一套android代码中有上百的git仓储