摘要:遇上这样的排版,手机的解象度都不同,假如只用CSS3根本就做不出这样的排版:因此要用Jquery。 1. HTML 2. CSS 3. Jquery
阅读全文
|
12 2017 档案
摘要:遇上这样的排版,手机的解象度都不同,假如只用CSS3根本就做不出这样的排版:因此要用Jquery。 1. HTML 2. CSS 3. Jquery
阅读全文
摘要:这实现思路其实很简单 需求:1. 图片比原来的<div>大,需要切割图片。2. 图片左上角显示标签 解决思路: 1. 把照片设置成div的backgroundImage,然后用CSS3切割图片。 2. 把小标签的Position设置在母DIV的左上角
阅读全文
摘要:这个PHP分页其实不难,现在就开始看看核心思路吧。 我习惯从最底层开始看起。 1. 首先用LIMIT偏移QUERY的指针 2. Presenter渲染HTML 3. View,视图层 有了核心的Business层,那就是创建PageSelector。 1. get amoumt of total p
阅读全文
摘要:当一个项目,同时需要Web、手机H5、Android,三平台同时可以测览,那就需要很简洁而有力的架构。 而我这就经历了这麽一个项目,先开发网站,然后是手机H5,最后是Android。 自信男人,无须多言,请先看图。 先看最底,这里是工具类,没什麽好解释。核心依然是MVPR架构,手机H5和网站版各自独
阅读全文
摘要:经历了一段时间的磨合,总算是研究出一套最简洁的命名方法,供大家叁考一下。 干过了几个项目,首先了解到,简洁清楚的命名方法是多麽重要的一回事。 这是从代码简洁之道这本书,还有看过国外几个大牛的源码,总结出来的东西。 1. 模组命名 MVPR是我最常用的架构,所以只集中说MVPR这种架构。 Model是
阅读全文
摘要:semantic和Bootstrap是我最常用的前端框架。 这次需求,是要修改selection dropdown。 直接贴代码,不解释。
阅读全文
摘要:客户提了个需求,输入日期,想也不用想,立刻翻查Jquery,发现是有timepicker.js这个控件,马上就用。 1. 导入库 2. HTML 3. JS 4. 定义格式 'yy-mm-dd' = 2017-12-07 'H:i' = 14:00 还有很多可以修改的东西,我只是看了一点官方的API
阅读全文
摘要:客户想要一个跑马灯的效果,最终我用了jquery.marquee.js。 这个库很简单就能用。 效果是这样,从左到右,移动速度都不一样。 1. HTML 2. JS Done.
阅读全文
摘要:CkEditor是目前世界上最多人用的富文本编辑器。遇上客户提需求,要改一下编辑器的样式,那就是深入CkEditor的底层来修改源码。 修改完的样式是这样,黑边,蓝底,迷之美学。这就是男人自信的表现,风迷万千。 1. 下载了CKEDITOR,解压缩,里面是这样。 注意,CkEditor的css样式是
阅读全文
摘要:我们团队的测试是这样:重点测试核心功能,争取用20%时间扫除80%的核心功能Bug。 在泳道图,确立了系统有2个身份的用户。Student和Tutor,那就用这2个身份的人物来测试。 ... ... 十几页测试文档算少了。
阅读全文
摘要:项目做到中後期时,很多功能开始逐渐完成,可这里是最危险的时候,很多Bug就是在这里挖的。产品经理就是到处灭火的人,要确保坑少,那就用泳道图,让整个系统更可视化。 直接看图,不解释。 走到最後,我想逐点回顾一下,这个项目的一些经验和总结。 1. 产品经理面对客户时,是一个倾听者,询问者的角色。对客户提
阅读全文
摘要:「那个产品经理不会技术,整天在需求,真操他妈的。」 这是很多产品经理遇到的一句话,如果你把顾客阶段完成了,回到自己的团队,遇到个技术大牛这麽说,那就表示,自己作为产品经理的功力还不够。 等我慢现解释,到底怎样用图表和文档,最有效的和技术大牛沟通。 1. 首先要确定技术风格,是用什麽框架,像是Lara
阅读全文
摘要:表达能力很重要,强表达能力的人,也代表着有效的沟通。而沟通效率高,那这个产品经理的功力也不差。 以下就是我和团队,客户沟通时,用到的图表。其实没什麽特别,不过有些地方被我改良了,令交付起来更灵活。 之前已经有了ER图和需求图,大致了解了客户的想法,现在就要动手,真的干了。 1. 系统架构图,很简单,
阅读全文
摘要:我的习惯,第一步首先看数据流,先约莫估计有多少数据,就能推算业务层有多厚,有多少个页面。 这是一个ER图,可这ER图有些不同,经我改良过,更像数学的quadtree! 有几个改良的地方: 1. 不同分强实体和弱实体,因为这对后端的开发没太大影响。 2. 实体用红色表示,值用蓝色表示。 3. 如果A实
阅读全文
摘要:看板管理是我引进到公司的管理方法。为麽不用devOps和敏捷开发?因为公司不止技术人员,还有新媒体运营,销售人员,所以选择了看板管理。 自信男人,无须多言。看图给点叁悟吧! 详细的项目管理,会在之后详述。
阅读全文
摘要:用户在这App里没什麽特别操作。 1. 登入 2. 注册 3. 点赞 4. 评论 5. 修改个人资料 6. 上传个人头像
阅读全文
摘要:直接看UML吧,一目了然,不用解释。自信男人,无须多言。 这是用ListView显示Post的流程。 这是Uppdate User Profile的流程。自信男人,无须多言。
阅读全文
摘要:在短短一个月时间内完成的项目,因为业务层很「薄」,所以在想怎麽令架构变得「轻」。 而这个就是我采用的「轻」架构,供大家叁透一下。
阅读全文
摘要:这里ButtomBar有3个items,分别有icon和文字,在当前fragment时,所属的icon和文字会显示不同颜色。 1. 首先要准好ICON素材,命名规范要清楚。 2. 实现这个ButtomBar用到fragment,架构是这样。 3. ButtomBar的TextView带ICON 用D
阅读全文
摘要:代码不复杂,直接把完整代码贴上。 这次是用到很旧的HttpURLConnection,那为什麽会用这个,因为我本来想转回okhttp的,可实在没时间转,项目就已经做下去了,结果转不回来。
阅读全文
摘要:Okhttp上传图片方法,就像网页那样,使用Form的Post。 首先创建requestBody,然后Builder构建Query:最后Response返回服务器请求,最后把response.body().string()转换成String格式, 不算很难,不详解。 2. 这里是调用OkHttp上传
阅读全文
摘要:遇到了这麽一个需求,ListView滑到最底,然后会自动在底部加入新的Cell,实现动态刷新。 1. 首先,为ListView加上setOnScrollListener。 2. addData()是调用了notifyDataSetChanged。而notifyDataSetChanged是回调Lis
阅读全文
摘要:Adapter就是适配器,而设计模式里也有Adapter Pattern。 而BaseAdapter就是设计模式里的思维,把一些不相关的东西放进去,经过适配器,最终都会出产同一样的东西。 就像BaseAdapter,就算放不同的XML和Data进去,最终出现都是ListView的Cell。 1. B
阅读全文
摘要:这次会把所有之前学过的东西应用在一起,写一个登入的功能。 1. Activity调用CONFIG,获得URL后 2. Activity再调用Okhttp,从服务器返回JSON 3. Activity调用GsonTools,把JSON转换成<List>DTO 4. Activity调用DAO的get、
阅读全文
摘要:之前我们已经有了DbHelper、Data Access Object、Configuration。 那麽现在就是由Activity去创建它们,然後就可以存取Sqlite。 架构图表示了它们的关系。 流程 1. Activity调用DAO 2. DAO get CONFIG对象里的变量 3. Que
阅读全文
摘要:Configuration是属於util工具包。 把所有环境设置都定义在Configuration工具包里,那麽这个Configuration就是独立的单一入囗。 在架构上,可以提高耦合度,而且出Bug时也方便追纵。 更重要的是,假如表格的Name需要改变,那只要在Configuration里改一下
阅读全文
摘要:因为这个项目的业务层很薄,因此想在架构上尽量保持着「轻」,不会把创建DbHelper的interface。 而是直接用DAO创建DbHelper对象。 DAO和DbHelper也是同样使用懒汉模式。 1. UserDAO懒汉模式。 2. DAO负责处理Query SQlite的业务。这里分别有6个方
阅读全文
摘要:首先,创建DbHelper对象,继承SQLiteOpenHelper。 Configuration是自行创建的工具类,里面都是App的一些环境设置。
阅读全文
摘要:首先仍是用懒汉模式来创建Network这个工具对象。 其次,validNetwork的方法,用到connectivityManager和activeNetInfo这2个原生控件。
阅读全文
摘要:除了用okhttp网络库外,还用到google的gson库。 1. uti类的对象一般都用懒汉模式。这次gson也是用懒汉模式。 2. GSON库有两种方法,叁返分别是List合集和String。 如果是返回多於一个Array,服务器的响应是这样。 如果只是返回一个Array,服务器的响应是这样。
阅读全文
摘要:1. 在build.gradle里引入okhttp库 2. 创建okhttp对象,这里是用赖汉模式,减少系统的记忆体消耗。 3. 在okhttp对象里创建getResponse方法,返回服务器的回应。 4. 如果是想利用okhttp上传文件,可用uploadImage方法。
阅读全文
|