项目

这个产品,我们吸取了很大的教训

牧云@^-^@ 提交于 2021-01-07 07:10:03
在过去的一个月里,我们公司启动了一个公司项目,这个项目交给了一个负责Java的有多年经验的Java工程师负责,也就是说他就是我们的主力。一开始,大家都是激情澎湃的,怎么说呢?我所在的公司是创业公司,招的人几乎是实习生,应届生,没什么经验,而突然融进来了一个有多年经验的Java主力,我们都觉得我们有救了,有希望了。然而事实不是这样子的,反而项目上线那一天,我们很多人都很失落,却仍然保持着乐观心态,而我,对这个项目几乎不忍直视,到底是怎么了呢?我先说一下这一个月里发生了什么事吧。还要说明的一点是,在这个月里面,我们要实现的功能点,其实很少,基本上都是数据展示。 在过去的40天里,我们花了大概一个星期的时间理需求和业务逻辑,而这些东西,是技术部Java主负责人和两个UI理出来的,没有经过市场调查,基本上是凭空而想的,业务部出的需求,直接被Java主负责人pass掉,因为他觉得他的想法才是最好的,那业务部也没说什么,听了他的。这是第一个问题,没有经过市场调查,技术部直接理需求。技术部第一次越位,业务部本应做的需求文档,直接被技术部口头上的想法替换掉。 在这一个月里面,刚开始,数据表是两个UI理出来的,你没有看错,本该是后台做的事,竟然让两个UI去做。我不是学Java的,我是主力php的,竟然要学Java到后台帮忙,但是这个只是接触了一下就没去玩了,我个人认为,设计数据库这种事

程序员做些业余项目的重要性

生来就可爱ヽ(ⅴ<●) 提交于 2020-05-03 22:42:37
编程是一种创造过程,业余项目允许程序员在没有截止日期或各种限制的条件下,以探索形式编程。业余项目之所以重要,有以下几个原因。 探索新技术 每天都会不断有新技术出现,开始不知道开发安卓应用需要做保护,如果一旦你的一个应用上市场是为了获得一定的外快,这个就不得不知道。办法总是比困难多,在你还没遇到的时候有人遇到了,并且研究出了解决办法—— 爱加密专业安卓应用加密技术 。同时业余项目则是最佳的试验场。作为业余项目,你不必为bug或者性能问题担心,即使网站崩溃也没有问题,因为你不靠它来领薪水。 从头创造 我所从事的大多数都是为现有的产品做一些维护,增加一些新特性,修复bug,解决性能问题,重构现有代码。虽然我也从头编写过一些软件,但这些基础工作只需要一两个月,接下来我又进入维护模式了。 业余项目经常需要从头构建。我喜欢这个步骤,因为我不但复习了已经掌握的所有东西而且把它们应用到创建一个新的(更好的)项目中。 易于启动 进行业余项目也是一项避免分析瘫痪(analysis paralysis)的练习。如果你从头开始会有各种各样的可能性。避免的方法是给出一个短列表上面列出所有必须具有特性,接下来启动一个beta版本实现那些特性,即所谓的最小可行性产品[TODO]。 编注1:分析瘫痪:对某个问题由于过度分析或过度思考某种情况,以至于没有作出决定或者采取行动。在不同的领域,分析瘫痪有具体的解释

如何提升你的远程开发的成功率

一曲冷凌霜 提交于 2020-04-14 07:38:42
【今日推荐】:为什么一到面试就懵逼!>>> 远程工作是趋势,一方面降低企业成本,提升企业人才素质而不受地域局限,一方面让员工可以对自己的时间和生活质量有更大的把握。然而,要建立一个远程团队,却不是一蹴而就的事情。我们客栈自从2015年9月远程项目正式上线,迄今已完成350个远程项目,100+项目正在进展,在此期间,我们在不断和客户一起学习来提升远程项目的成功率。总结我们自己350个项目的成功经验,以及学习国外远程团队先进经验,我们总结出以下几个方面的经验:   1,什么样的人适合做远程工作   2,如何提升你的远程开发的成功率   本文谈谈,如何提升你的远程开发的成功率。    一,找到正确的人   如果合作过程中发现有人持续不能完成任务,比如说,连续不能完成每周的交付,那么你需要去分辨是哪种原因:   1,本身不具备完成本项任务的能力   2,态度不对,没有契约精神。   3,受到突发事件影响,很快能解决。   如果是第3种,可以继续合作。如果是前2种,建议尽早替换人员。    二、颗粒化需求,做到可拆分到每周,甚至每天的交付。   如果一个项目拆分出来最小的子任务,都需要起码一个月以上的时间来完成,更有可能的是需求没有整理清楚,这个时候的关键任务是整理需求,不要急着开发。   整理的关键,是以可交付任务为基本单元来准备产品文档,开发者只用基于产品文档来实现

Android MVP 模式 项目初体验(一)

老子叫甜甜 提交于 2019-12-09 20:36:07
版权声明:本文出自veidy的博客,转载必须注明出处 转载请注明出处 : http://my.oschina.net/aibenben/blog/381274 之前大家听得最多的是MVC,去年 去中兴面试的时候被问到MVP,当时脑子里面第一个想到是NBA 詹姆士,哈哈哈。那是第一次听到MVP模式,后面也没注意,再后面又听到别人提起,于是百度了解了一下。 什么是MVP? 为什么要用MVP? 怎么在Android上实现MVP? 我再这里给大家推荐一篇博客: ym——Android开发MVP模式(解决了View和Model的耦合) 不多说了,我写了一个登录的Demo,直接拿来分析MVP在项目中的使用吧。 大家先看看目录结构 先看M层 model里面我写了一个接口LoginModel,一个实现类LoginModelImple然后还有一个接口OnLoginListener 先看LoginModel 再看LoginModelImple 接着我们看V层 View里面我写了一个接口LoginView 然后,在登录这个Activity 去实现这个接口,并实现其抽象方法。即看LoginActivity 最后我们看P层。 这是很重要的一个环节 我们不是要登录吗?所以我们在LoginPresenter里面写一个方法login(),然后我们在ActiviLoginActivity点击登录按钮后调这个方法。

Drupal常用开发工具(一)——Devel模块

微笑、不失礼 提交于 2019-12-09 20:03:03
  进行 Drupal 开发时有许多模块和工具可供使用,其中最常用的两项便是 Devel 及 Drupal for Firebug。本文和《 Drupal常用开发工具(二)——Drupal for Firebug 》将分别对它们进行介绍。   与本文相关的很多内容可以通过 Devel Demo 模块进行查看,如有纠正或补充可以在官方问题队列中发帖,也可以在本文后进行留言。 Devel模块   Devel 集合了多个开发辅助模块,除了作为核心的 Devel 模块外,Devel 模块包中还包含了其它子模块,如 Devel Generate 可用于生成测试内容、术语和用户等。(注意Theme Developer 模块已经从Devel 模块中分离出来成为单独的模块)   Devel 的子模块并不在本文中进行介绍,如有兴趣可到项目页面阅读相关的说明文档。 dpm()   使用drupal_set_message() 函数将变量显示在页面的 ‘message’ 区域。使用此函数,可以变量进行跟踪。因为Devel模块现在使用Krumo 对变量进行显示,所以输出结果会变得复杂一些。 dpm($input, $name = NULL);   如果因为某些原因,你没有使用Krumo,可以使用 $name 参数来对不同的 dpm() 调用进行区分。 dvm()   使用drupal_set

一篇偏激的项目总结和PPT——数据驱动型的网站开发的几个问题和讨论。

…衆ロ難τιáo~ 提交于 2019-12-07 07:45:34
所谓数据驱动型的网站,其实就是常见的 MIS 系统在 B/S 形式下的实现。 B/S 模式在 90 年年代末大量出现的时候,其主要特征是 Page-Based ,也就是基于页面的。因为 Html 技术的网站本身是一张一张的页面组成的内容展示工具。对于 MIS 系统的比较复杂的高速交互式的操作,用本质上不是非常兼容。 从 1995 年到 2005 年的十年间,所有人都在与两大不兼容问题进行斗争,编写了无数无任何意义的代码,尤其是以 Java 最为甚。 第一个不兼容是 ORM ,也就是关系对象映射, 95 年以后,是面向对象程序设计大行其道的时候, Java 也是标榜自己的原生的面向对象特质。但是, MIS 系统操作的数据,是关系型数据库,其存储在数据库中的数据形式,是以表为形式的。所以绝大多数 Java 的项目,都将表直接映射为一个对象,对象里面只有 get 和 set 方法,这种对象呗成为 POJO(Plain Old Java Object) ,也就是贫血的老旧的 Java 对象 , 然后所谓的海量的 DAO 代码,不断的将各种表对应到 POJO 的对象当中。 后来出现了 hibernate ,通过 xml 配置,将对象和表进行了所谓的快速绑定。 但是 hibernate 存在两个问题,导致其使用非常受限。 首先 hibernate 的性能极差,使用 hibernate 的

图解IntelliJ IDEA v13应用服务器的运行配置

最后都变了- 提交于 2019-12-06 06:43:03
初步了解 IntelliJ IDEA v13应用服务器 以后,接下来我们将继续设置应用服务器的运行配置。 Artifacts是IDE在通过运行配置时部署的一个服务。Artifacts包括名称、类型、输出目录、布局和设计。Artifacts设置在Project Structure丨Artifacts 如果使用的是Maven或Gradle,不需要手动配置工作。因为IntelliJ IDEA v13将自动同步构建文件。 运行配置部署到服务器有2中方式:本地和远程 每个应用服务器可能拥有不同的运行配置参数: 这些重要的参数,涉及到应用程序的更新,如:资源更新,重新部署和重启服务器等。 其中frame deactivation参数是非常重要的,设置这个参数,可以在不去更新资源和部署的情况下,在使用浏览器时自动更新。 值得注意的是远程运行配置需要额外的添加 主机 和 端口 。 欢迎大家下载 IntelliJ IDEA v13试用版 来开发和部署应用程序。 来源: oschina 链接: https://my.oschina.net/u/1251054/blog/195451

探秘IntelliJ IDEA v13的应用服务器

假如想象 提交于 2019-12-05 10:04:33
IntelliJ IDEA v13应用out-of-the-box支持众多企业级和开源的服务器,包括:GlassFish、WebLogic、 JBoss EAP、Wildfly、WebSphere、Tomcat、TomEE、Jetty、 Geronimo、Resin和Virgo。 在 Settings丨Application Servers 点击添加应用程序服务器,IntelliJ IDEA会自动检查版本,根据依赖关系来确定应该选择的资源库。 在web方面,IntelliJ IDEA通过项目结构模块来确定web资源。通过如下模块设置: IntelliJ IDEA v13最新支持——在线支持更新应用程序服务器。 对于IntelliJ IDEA v13的应用服务器,慧都会持续关注其工作部署,运行配置等。 下载IntelliJ IDEA v13试用版 来源: oschina 链接: https://my.oschina.net/u/1251054/blog/195447

Android studio 使用心得(三)---从Eclipse迁移到Android studio

喜欢而已 提交于 2019-11-29 14:39:22
断断续续的也算是把eclipse上的代码成功迁移到android studio上来了,现在,我同事继续用eclipse,我用android studio,svn上还是之前eclipse的项目,迁移成功后,我也能happy的开发了,两不误.直接来分享我捉摸的一点小成果吧 以Demo4 为例,并引用了library包appcompat_v7_8. 1,第一步,Eclipse还是要有滴,并且adt 得在22以上,我相信大家adt肯定在22以上了吧,不然还开发个毛。 (1) 在Eclipse中,选择Flie->Export--> Android--> Generate Gradle build files (2),next-->选中自己要导的项目-->next-->先只勾选Force overriding of exeisting files-->finish--->finish (3).各位,注意啦,有东西要改啦,先在eclipse项目里面去瞧瞧项目,增加了一个文件build.gradle,然后直接在这里面改点东西。 改什么东西本呢,先上我改完后的图。高清无码大图,好戏在后头 a,把apply plugin: 'android' 改成 apply plugin: 'com.android.application'因为,apply plugin: 'android' 已经不适合现在的版本啦