有哪些 source insight 的替代品
我之前也用 si 浏览代码, 后来转向 vim + ctags + cscope. 用熟后整体感觉比 si 好用.
代码补全用 ycm 插件, 不过目前对函数参数提示不是很好.
vim 插件和配置管理用 vundle, 托管到 github 上, 可非常方便的同步到多台主机上.
si 不支持 unicode 编码是个硬伤. 不过它的"Add and Remove Project Files"很方便, 特别是对于 Linux Kernel 这样的需要排除大量与体系结构相关的目录的项目, 而 cscope 就需要用cscope.file 来管理了.
如何使用CocoaPods安装使用及配置私有库以及管理依赖库 原创
我们通过集成MJR额fresh类库来演示如何使用CocoaPods来做依赖库管理。首先,建立一个xcode工程,命名为CocoaPodsTest,现在的工程结构如下图所示。 这里我们要集成JSONKit,可以先通过如下命令来判断其是否支持CocoaPods。 “`$ pod search mjrefresh“` PS:支持模糊查询 执行后通过输出结果可以看到mjrefresh是支持CocoaPods的,注意红框标记的内容,这是待会我们配置xcode时需要的信息,这条配置项就是告诉CocoaPods去下载和管理那一个版本的第三方库。 出现Setting up CocoaPods master repo,说明Cocoapods在将它的信息下载到 ~/.cocoapods里,cd 到该目录里,用du -sh *命令来查看文件大小,每隔几分钟查看一次,我的这个目录最终大小是211M,就是完成了,。如果不成功,在下面会显示一个git的网址,在这个网址下载相应的文件放在电脑相应的文件夹即可。 检测完毕后我们来到工程CocoaPodsTest的目录下,新建一个名为Podfile的文件(这里通过命令行创建) $ vim Podfile 这个Podfile文件的作用是配置依赖库信息,就是告诉CocoaPods去下载和管理哪些依赖库,文件创建好以后,打开文件并加入如下内容。(vim打开文件后按i进入插入模式,编辑完成后按esc退出编辑模式,接着输入:wq保存并退出文件) 这时候,工程目录下就会有一个Podfile文件了,注意必须和.xcodeproj在同一个目录下。接下来就可以使用CocoaPods来安装并管理JSONKit库了,确保命令行当前路径是在CocoaPodsTest目录下,运行如下命令。 $ pod install 安装完成后会提示如下信息,并且我们的工程目录下会多出一个.xcworkspace结尾的文件,命令行信息绿色部分提醒我们“从此使用CocoaPodsTest.xcworkspace来打开项目”。 通过CocoaPodsTest.xcworkspace来打开项目,这时,我们的项目工程结构就会变成下图这样,多出一个名为Pods的依赖工程,打开Pods文件夹后,发现MJRefresh已经在里面了 在Mac安装Cocoapods时出现 [!] CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose` 找了很多资料,找到一种解决方法,纪录在此 rm -fr ~/.cocoapods/repos/master pod setup 这时候就可以在项目文件中引入JSONKit.h了,这时候如果你发现import的时候没有提示JSONKit的文件,可以在target-Build Settings下修改“User Header Search Paths”项,新增${SRCROOT}并选择rcursive,如下图。 设置完成后就可以在文件中直接引用第三方库的文件并使用了。 到此,新建工程并使用CocoaPods来管理依赖库的过程就完成了,如果是直接使用已有CocoaPods的项目,则需要首先运行一下pod update命令来更新项,然后照样通过.xcworkspace来打开工程。 如果需要依赖多个第三方类库,只需要修改Podfile文件的配置,然后运行pod update命令即可,比如新增一个AFNetworking的依赖库,首先执行pod search AFNetworking查看一下AFNetworking的配置信息,修改Podfile文件,在后面增加AFNetworking的对应配置信息,然后运行pod update命令就完成了对AFNetworking的集成。 添加AFNetworking库后的目录结构如下。 如果类库有更新,查看更新配置并执行pod update即可简单完成了,从此从手动更新繁重的体力劳动中解脱出来。
如何编写高质量的python程序
写出规范的代码是写出高质量代码的第一步,并且有助于培养仔细的习惯。为了培养规范写代码的习惯,可以安装flake8这个工具,它不仅可以检查代码风格是否符合官方建议(PEP8),而且还能找出潜在的隐患(用Pyflakes做语法分析),更逆天的是还能检测到你有些函数写的太复杂(代码圈复杂度)了,更更逆天的是可以设置git commit之前必须通过这些检查。当然具体操作需要根据自己的项目进行一些定制,比如可以忽略E501,W293。空白项目模版好的开始是成功的一半,写python代码就从pyempty开始吧。在github上看一下那些经典的项目,web.py,flask, pep8,他们的项目目录都很规范,综合借鉴了一些项目的特点,我写了这个pyempty项目。1.README.md 这里写你项目的简介,quick start等信息,虽然distutils要求这个文件没有后缀名,但github上如果后缀是.md的话可以直接转换成html显示。2.ChangeLog.txt 该文件存放程序各版本的变更信息,也有一定的格式,参考web.py的ChangeLog.txt3.LICENES.txt 这里存放你项目使用的协议,不要编写自己的协议。4.requirements.txt 如果你的项目需要依赖其它的python第三方库,在这里一行一个写出来,可能pip install的时候能自动帮你安装5.setup.py 安装脚本,后面详细介绍6.docs 里面存放你的项目文档,如概要设计,详细设计,维护文档,pydoc自动生成的文档等,强烈推荐大家使用MarkDown格式编写文档7.src 这个目录里存放项目模块的主要代码,尽量不要把模块目录直接放到根目录,模块代码目录可以在setup.py里指定的8.tests 这个目录存放所有单元测试,性能测试脚本,单元测试的文件确保以test_做前缀,这样distutils会自动打包这些文件,并且用python -m unittest discover -s ./ -p 'test_*.py' -v 可以直接执行这些测试单元测试Martin Fowler:"在你不知道如何测试代码之前,就不该编写程序。而一旦你完成了程序,测试代码也应该完成。除非测试成功,你不能认为你编写出了可以工作的程序。"我们有很多理由不写单元测试,归根结底是懒,虽然代码大全上说:大部分研究都发现,检测比测试的成本更小。NASA软件工程实验室的一项研究发现,阅读代码每小时能够检测出来的缺陷要比测试高出80%左右(Basili and Selby 1987)。后来,IBM的一项研究又发现,检查发现的一个错误只需要3.5个工作时,而测试则需要花费15-25个工作时(Kaplan 1995)。但是单元测试还是让别人相信你的代码有很高质量的最有力证据。好了,请详细阅读:深入python3.0: 单元测试-2.x也适用Unit testing framework 不完整中文版文档敏捷开发不是提倡什么文档也不写,没有文档就没有传承和积累,轮岗或新人接手任务就会遇到很大的麻烦,所以我决定每个项目最少要写以下文档:1.nalysis.model.md 概要设计文档,不同于README.md文件,该文档应该写于项目开发之前,把项目有哪些功能,大概分几个模块等项目整体概述信息写一下。2.design.model.md 详细设计文档,不用太详细,至少把项目依赖哪些东西,谁依赖这个项目,重要算法流程描述,代码整体结构等写出来。3.maintain.md 维护文档,这个我觉得最重要,你的服务都记录哪些日志,需要监控哪些业务指标,如何重启,有哪些配置项等,没这些东西,你的项目很难运维。上面这些文档都是项目全局性的文档,不适合写在docstring或注视里,所以要有单独的文档。打包python有专门的模块打包系统distutils,你可以用这套机制把你的代码打包并分发到Pypi上,这样任何人都可以用pip或easy_install安装你的模块。如果你开发的是内部项目,还可以用mypypi架设私有的pypi,然后把项目的大的版本更新发布到内部的pypi上,配置管理人员和运维人员可以很方便的从pypi上拉取代码安装到测试环境或生产环境。发布大版本的时候要给版本命名及编写ChangeList,可以参考Git Pro的相关章节,主要记住以下几个命令。git tag -a v0.1 -m 'my test tag' #给大版本命名,打Tag git describe master #给小版本命名,Git将会返回一个字符串,由三部分组成:最近一次标定的版本号,加上自那次标定之后的提交次数,再加上一段SHA-1值 git shortlog --no-merges master --not v0.1 #生成版本简报,ChangeList python有自己的打包机制,所以一般不要用git archive命令。当然大版本管理用pypi管理比较合适,小的bug fix,紧急上线等好多公司都是用git直接从生产环境拉代码更新,因为git,svn等可以很方便的撤销某次更新,回滚到某个位置。如何管理好大版本上线和小的紧急上线,我还没理清思路,欢迎大家参与讨论。关于打包,请阅读如下链接:Python 打包指南深入Python3.0:打包 Python 类库python打包:分发指定文件出自:http://developer.51cto.com/art/201209/356603.htm
如何不让别人看到自己github上的代码
不让别人看到自己上的代码,需要加入了Education计划或者付费用户可以创建私有仓贴Private Repo,私有仓库里的代码不能看到。购买收费版的其他人看不到。否则是公开的。放在github上的代码都是为了分享的,如果不公开就没必要放上去了,如果不想放在上面,可以在公司里架设git服务器。GitHub除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。扩展资料配置管理:GitHub上已自动配置的Mac笔记本电脑,一个工具,可以转换设置Linux或Windows机器。BOXEN是GitHub的自动化工具,设置和配置的Mac笔记本电脑软件开发或其他类型的工作,正在使用他们的开发人员,律师,设计师,付货人,等。BOXEN的基础上收集了大量的几十个木偶模块,使设置的各种软件,如卡桑德拉,MongoDB中,Java软件中,Python和Ruby开发中,节点,JS,nginx的,Skype公司,甚至MINECRAFT。虽然机器上配备了一个预配置,每个用户都可以调整它的配置应有的作用。参考资料来源:百度百科-Github
如何不让别人看到自己github上的代码
不让别人看到自己上的代码,需要加入了Education计划或者付费用户可以创建私有仓贴Private Repo,私有仓库里的代码不能看到。购买收费版的其他人看不到。否则是公开的。放在github上的代码都是为了分享的,如果不公开就没必要放上去了,如果不想放在上面,可以在公司里架设git服务器。GitHub除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。扩展资料配置管理:GitHub上已自动配置的Mac笔记本电脑,一个工具,可以转换设置Linux或Windows机器。BOXEN是GitHub的自动化工具,设置和配置的Mac笔记本电脑软件开发或其他类型的工作,正在使用他们的开发人员,律师,设计师,付货人,等。BOXEN的基础上收集了大量的几十个木偶模块,使设置的各种软件,如卡桑德拉,MongoDB中,Java软件中,Python和Ruby开发中,节点,JS,nginx的,Skype公司,甚至MINECRAFT。虽然机器上配备了一个预配置,每个用户都可以调整它的配置应有的作用。参考资料来源:百度百科-Github
2020了,前端,移动开发,后端,我该选哪个?
首先跟你普及一下他们之间的技术交叉:1.前端有移动端前端,web前端,客户端前端等,以下以常规的移动端前端和web前端举例2.移动端前端例如安卓手机app,ios的app这种类似的概念应用可称为前端(当然app也有嵌入web前端的),移动端web手机网页,电脑网页也是前端3.前端技术,不少都会嵌入web,可以理解为网页,做了一定布局使这个网页可以适应手机浏览(就像你看某些网页和电脑网页不一样),他们之间都使用了html。从这一点看,你做前端学习html一类全家桶是没什么问题,你说的移动开发可分为安卓苹果平板之类的app以及移动端网页4.后端可以简单的理解为网页需要的数据。现在小厂大多数,后端人员也需要会前端所以怎么选择看你自己,移动端,前端都可以,或者全栈也行,个人推荐前端,因为压力不是很大,做了后端如果在小厂,可能说不准,运维,前后端都是你一个人做。加油[呲牙]
怎么恢复到使用cocoapods之前
方法/步骤
1 .如何下载和安装CocoaPods
1.1 在安装CocoaPods之前,首先要在本地安装好Ruby环境。(MAC一般自带)
1.2 在Mac终端执行sudo gem install cocoapods
1.3 在Mac终端执行$ gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 $ gem sources -a http://ruby.taobao.org/
为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:
$ gem sources -l
只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES *** http://ruby.taobao.org/
1.4这时候,你再次在终端中运行:
$ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。
2. CocoaPods的使用
2.1 新建一个名为 Podfile 的文件,以如下格式,将依赖的库名字依次列在文件中即可,例如
platform :ios
pod 'JSONKit', '~> 1.4
'pod 'Reachability', '~> 3.0.0'
pod 'ASIHTTPRequest'pod 'RegexKitLite'
然后你将编辑好的 Podfile 文件放到你的项目根目录中,执行如下命令即可:
2.2 在命令行通过cd指令进入到项目根目录
2.3执行"pod install (如果终端出现updating local specs repositories,那么请用ctrl+c强制结束命令进程,然后执行 pod install --verbose --no-repo-update
2.4 现在,你的所有第三方库都已经下载完成并且设置好了编译参数和依赖,你只需要记住如下 2 点即可:
使用 CocoaPods 生成的 .xcworkspace 文件来打开工程,而不是以前的 .xcodeproj 文件。
每次更改了 Podfile 文件,你需要重新执行一次pod update命令。
3
3.CocoaPods的使用注意
3.1目前在GitHub上大部分的开源项目都支持CocoaPods
3.2对于新的IOS开发人员来说,CocoaPods是开发项目必须掌握的一门技术
END
注意事项
目前在GitHub上大部分的开源项目都支持CocoaPods
对于新的IOS开发人员来说,CocoaPods是开发项目必须掌握的一门技术
如果第三方库更新后,请在项目根目录下通过终端执行pod update来更新库
迁移git服务器 开发人员怎么获取代码
有一个项目一直是再我们localhost服务器A下使用的git做的开发。最近需要搬移到线上的服务器B上。
目的:要保留原有的所有的开发记录。
一开始,我准备是直接clone一份最新的,然后以这个为原始版本开创建,发现这个是不可取的。
最后想到的一个办法就是,登陆到A上面,切换到git用户组,使用scp将整个repositories下的项目目录copy到服务器B的git repositories下。那样就能保留原有的文件所有者规git所有。然后在服务器B上创建一个跟刚才copy过去的项目。就可以直接在本地使用B服务器上的git地址进行开发了。
如果您是使用的别人的git仓库,比如github。那就看看下面这篇我在网上找的文章:
如果你想从别的 Git 托管服务那里复制一份源代码到新的 Git 托管服务器上的话,可以通过以下步骤来操作。
1). 从原地址克隆一份裸版本库,比如原本托管于 GitCafe。
git clone –bare git@gitcafe.com:username/project.git
2). 然后到新的 Git 服务器上创建一个新项目,比如 GitHub。
3). 以镜像推送的方式上传代码到 GitHub 服务器上。
cd project.git
git push –mirror git@github.com:username/newproject.git
4). 删除本地代码
cd ..
rm -rf project.git
5). 到新服务器 GitCafe 上找到 Clone 地址,直接 Clone 到本地就可以了。
git clone git@github.com:username/newproject.git
这种方式可以保留原版本库中的所有内容。