我是总部设在东北大学的学术联盟的唯一开发人员.我的所有开发工作都涉及内部工具,主要是Java,因此没有任何内容发布给公众.现在,我觉得我的开发工作流程非常"爱好",并且与您在经验丰富的软件开发公司看到的完全不同.我倾向于说这并不重要,因为我是唯一一个开发人员,但是如果没有其他原因那么做一些改变就不会有什么害处,而不是让我的工作变得更容易一些我的简历中有更多技术.现在我的工作流程是这样的:
我在笔记本电脑上的Eclipse中进行了大部分开发工作.一切都在我的笔记本电脑上本地保存,我没有使用VCS,也没有真正备份我的代码(偶尔通过电子邮件发送给自己,所以我可以在另一台计算机上看到它 - 是的,我告诉过你我的开发环境需要工作).
当我完成一个项目并希望部署它或者我只是想测试它时,我使用Eclipse中的内置Jar工具来创建我的项目的可执行文件.jar.如果我使用外部.jar库,我使用Fat-Jar插件将这些.jars包含在我的可执行文件.jar中.
创建.jar之后,我通过SFTP手动将其上传到服务器并使用类似的方法对其进行测试java -jar MyProject.jar.
哦是的,我提到过我不进行单元测试吗?
我想首先解决的最明显的问题是我缺乏源代码控制.我喜欢git,因为它具有分布式特性,但它似乎没有很好地与Eclipse集成,我听说它在Windows上运行不佳,这是我的主要开发操作系统.所以,我倾向于SVN,我确实有一些经验.我确实拥有自己的个人服务器,我想我会将它用于我的源代码控制,因为我宁愿成为自己的管理员而不是处理大学官僚机构.我之前设置SVN时遇到了一些麻烦,但是我会再试一次.也许我还会安装像Trac或Redmine这样的bug跟踪,待办事项列表等等?
那么构建和部署呢?必须有比使用Fat-Jar更好的方法并手动将我的jar上传到服务器.我听说过像Ant和Maven这样的工具 - 这些适用于我想做的事吗?我怎样才能开始使用它们?
我想我最终也希望将单元测试与JUnit集成.虽然它可能应该是,但这不是我现在主要关注的问题,因为到目前为止我的应用程序并不是非常复杂.我现在非常想简化和简化我的工作流程,然后我会轻松进行单元测试.
很抱歉这个问题很长.我想我的问题归结为,对于一个唯一的开发人员,我可以/应该使用哪些工具和方法,不仅可以使我的工作更轻松,而且还可以让我自己接触一些在专门开发中需要的必备知识的技术屋?
编辑:感谢目前为止的精彩答案.我并不是说我想让我的工作流程"企业化"只是为了做到这一点,而是为了让我的工作变得更简单,并在我的腰带上获得通常用于企业开发环境的一些技术.这就是我的意思.
我目前只使用.NET,并希望在python上运行.为此,我需要建立一个python开发环境.我指导这个会很方便.我想我会做Web开发所以需要一个Web服务器,可能还需要一个数据库.我还需要指向流行的ORM,MVC框架和测试库的指针.
我所有这一切的主要标准之一就是我想了解它是如何工作的,我希望它尽可能地孤立.这很重要,因为我担心使用第三方Web和数据库服务器污染什么是有效的.NET环境.如果可能的话,我很高兴使用SQLite开始.
如果我对此很好,我也可能想要设置自动构建和ci服务器(在虚拟机上,可能是ubuntu).对这些的任何建议都会有用.
如果我喜欢python,我的最终目标是拥有类似的.NET工具,并真正了解它的构建和部署.首先,我将寻求一个尽可能隔离的简单开发环境,如果我不喜欢它将很容易删除.我不想使用IronPython,因为我想要使用通常使用的工具和框架开发python解决方案的完整体验.
我刚刚开始使用ctags并非常欣赏该工具,但我管理我的标签文件的方式在我看来有点麻烦而且非常不灵活.
我目前如何管理我的标签文件:
~/.vim/tags有一个单片标记文件适合我,因为它让我跳转到我正在处理的当前项目的所有相关符号.
单个整体标记文件是否不适用于大型/庞大的代码库?为什么巨大的标记文件无法在大型/庞大的代码库上运行?
管理标记文件(或标记文件复数)的其他方法有哪些?
为什么管理标记文件的新方法会更好?(可能更好的解决方案有时会更复杂.因此,如果您的解决方案更复杂,我会问您更复杂的方法来管理您的标记文件有什么好处.)
ps我发现了一个stackoverflow问题,谈论ctags称为" vimctags-tips-and-tricks ",但这个问题没有讨论如何管理你的标签文件.
我只是从Ruby/Rails开发转向Python/Django,我正在努力寻找RVM/Bundler/Capistrano的最佳替代品,但它似乎总是一团糟?
到目前为止我找到了这些:
envwrapper
果仁
对于capistrano,我发现Fabric似乎很合适?
我发现了一些描述如何设置virtualenv/pip/fabric的文章,但似乎每个人都转向pythonbrew?我应该选哪些?此外,似乎pip/virtualenv集成得相当好,但如果pythonbrew是更好的选择?
有没有办法用git的HEAD哈希自动更新package.json(https://npmjs.org/doc/json.html)的版本号?我想version: 1.0.0+rev82e4b91cfe42cd86e9453b4987b9cc446566de6在项目的package.json文件中有类似的东西.在加号之前的Eveything是手动设置的,每次我提交时都会更新哈希值.
这可能吗?我在这个主题上找不到任何东西: - /
该项目通过composer.phar install --prefer-source并包含相当多的模块保存在git中.
我在IDE(PhpStorm)中管理所有这些模块及其git存储库,因此可能会对vendor/文件夹中的某些模块进行一些更改- 直接到源git存储库.
我怎样才能确保我的同事在做一个composer.phar install(composer.lock在回购中)时获得我最近的模块版本?
如果我创建一个本地,composer.phar update它看起来像是composer.lock没有更新,因为我已经有了最新版本(因为我刚刚在vendor文件夹中提交了)
我按照设置的程序development environment for Kindle Fire in Eclipse从 亚马逊网站.虽然我在"管理加载项网站"选项中正确添加了加载项网址,但Android SDK Manager仍未显示以下下载选项:
Android 4.2.2 (API 17)
SDK Platform
ARM EABI v7a System Image
Intel x86 Atom System Image
Kindle Fire HD 7? (3rd Generation)
Kindle Fire HDX 7? (3rd Generation)
Kindle Fire HDX 8.9? (3rd Generation)
Run Code Online (Sandbox Code Playgroud)
现在我只能看到:
任何线索?建议??
虚拟PC是否适用于家用个人开发计算机.我在家里做一些自定义的.net编程,我想知道在性能和整体使用方面,Virtual PC是否有用.Virtual PC会话中的应用程序运行速度较慢.它将帮助我使用我的个人开发机器.你会推荐其他产品吗?
我现在正在学习Tcl/Tk,但是当我运行Windows时,我想为这种语言创建一个功能齐全的(专业)开发环境,但我需要知道:
我们使用以下函数自动检测我们是在机器内部还是在实时服务器上,然后为各种组件选择适当的配置:
function devIsLocal(){
$res=false;
$http_host=$_SERVER['HTTP_HOST'];
if($http_host=='localhost')$res=true;
if($http_host=='127.0.0.1')$res=true;
if(substr($http_host,-4)=='.lan')$res=true;
if(strpos($http_host, '.')===false)$res=true;
return($res);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,它仅依赖于HTTP_HOST值.
当然,如果您在本地使用某种类型的虚拟主机,例如example.com,那么该功能将被欺骗.
有没有其他方法来欺骗这个功能?还有哪些其他变量/地方可以用来确定我们的位置?
php development-environment production-environment autodiscovery