2017Q1总结

回顾一下,四分之一的2017都做了那些事。

1月
  • 测试

    从来公司实习开始就一直做测试工作。做了短视频项目的测试,做了聚合搜索中广告功能的测试,做了桌面侧屏的测试。

    刚开始有些不适应,后面也学到很多东西。

    比如 : 认识公司不少小伙伴,之后在开协作发中容易沟通;学会任务按照优先级处理,之后修改 Bug 可以先改重要的;了解到公司的测试流程。

  • MVP 学习

    由于测试工作不是很紧加上刚来公司,上级布置任务给的时间很充裕。所以利用多余时间也对开发中用到的技术进行了解。

    比如 : MVP 技术。对该技术有了初步了解,同时对 MVC 技术也进行研究。

  • 沟通演讲

    在测试的时候遇到一个好同事,她教了我不少与人沟通的能力。

    在做测试的时候也参加了测试同学的分享会,比如 : 如何也提交 Bug 的用户交流,利用用户来帮助我们测试,提高我们 App 的稳定性。

    在这期间我也在开发小组中分享了一片关于我的爱好的内容。

    第一次在公司分享,请教了之前分享过的同事,她们给与了一些书籍和建议,自己也在学别人别人之前分享的思路去做。

    结果肯定是很烂。也学到一些技巧,继续加油!

  • 初步了解 Url 统一域名的相关问题

    桌面App的域名还是比较乱的,有幸能够去看那块的代码。也许就是看了别人的乱代码才会想到自己之前也是这么写的吧。

    桌面中的 URL 是有生产环境和测试环境两条域名的,如何切换这两个域名呢?桌面中采用的是Gradle去配置。对这块也进行了初步学习。

    了解了 Gradle 如何定义一个变量,如何获取一个变量,原来 Build.gradle 文件是自动生成的。

    但是用 Gradle 去控制接口是比较复杂的,于是想到 Spring 实战中的一种写法,讲固定的东西写到配置文件中,而这里我选择了写在xml文件中。

2月
  • 面向对象的进一步学习

    面向对象最重要的就是抽取对象最重要的功能隐藏对用户毫无用处的细节。

    面向对象的具体实现就是:组合、社会分工、消息传递、接口。

    归结起来:面向对象 = 数据 + 行为

  • MVP学习

    越深入学习越发现自己要掌握的内容还有很多。一月份的时候了解过 MVP 的实现,这次对谷歌用 MVP 架构写的 Demo 进行研究,发现还有一种写法。谷歌是利用了Contrat ( 契约类 ) 将 View 和 Model 的接口进行统一管理。

    这么做的好处就是,每个 View 和 Model 都很清晰,只需要知道Contrat中即可直到对应的 View 和 Model 层。

  • 沟通演讲

    在公司里,客户端一直是弱势群体,产品需求来了就做,服务端不想做的,客户端来做。导致目前桌面代码很乱。因此学会拒绝需求很重要!

    拒绝别人是一门艺术,如果做到让别人能接受你的建议,又能乖乖去做呢?这就需要掌握沟通技巧了。

    在对需求时,可以不必说某个需求不好,而是说这个需求做起来没收入。总之一切和钱靠上边。没钱的东西,谁还会去坚持做呢?

    在功能做到一定阶段是需要我们去总结的,而领导要的是结果。因此我们只需将结果告诉领导,将过程写入文档即可。

  • RESTful 初步学习

    表述性状态转移就是 RESTful ,她主要是一种架构风格,采用的是面向对象的方式来设计接口。

  • DNS劫持

    Fiddler 模拟 Url 被劫持,利用抓接口工具 Fiddler 中的模拟修改 HOST 进行劫持 Url 。

    Http劫持和DNS劫持的区别就是:Http劫持后返回的内容还是网页本来的内容,只是添加了一些广告等内容在原有网页上面。DNS 劫持是将访问的 URL 链接给替换了,用户访问的真是的 URL 页面。

    防劫持:利用第三方的平台将访问的url 进行轮询。例如用 HttpDNS 防劫持。

  • 竞品分析

    主要分析的就是以下内容:首先是确定好竞品,然后进行比对ui、功能、内存、流量。

    在做结论是有个规定:错误的结论不如不做!

  • 在代码中,对象是可以New出来的额,上天通过赋值将你传给了我,我必将单例执行一生。致—瀝人青℃

3月
  • DNS劫持

    轮询ip的初步实现,利用 HttpDNS 实现、OkHttp 的 Dns 接口实现.

  • 抓取毕设美伊需要的数据

  • 观察者模式学习

    Obverser 观察者

    Obvervabel 被观察者

  • 内存泄露

    测试工具:leakCanary

    预防方式:

    1. 用Application 替代 ActivityContent
    2. 集合操作是需要有添加和删除
    3. 推荐使用static 内部类
    4. 监听有开也有关
    5. 文件操作时要记得关闭流
  • 文档的写法要求

    1. 文档名一目了然
    2. 设计和结构清晰
    3. 写文档一定是对某个内容深入理解
    4. 假设自己是白痴去阅读文档
    5. 格式:就近解释
    6. 对比:分析优缺点,得出结论
    7. 引入新的内容需要有过渡条件
    8. 开头表明意图,用数据说话
      9.最终目的时让白痴都能看懂且没有疑惑
  • 圈复杂度学习

    衡量代码中分支结构的复杂程度,方便去做重构和测试。

    工具:SourceMonitor、Javancss

  • 有效沟通的方式

    有效沟通就是:效率、效果

    讲好处,让别人去体会并决定是否去做

  • 插件化

    1. 动态加载
    2. 动态更新
    3. ReactNative、小程序
  • JavaWeb设计接口

    /servlet 随意配置,一般采用 doGet 处理请求

    利用 Gson 的一个工具将数据转为 Json 数据即可

总结

Q1 虽然没写多少代码,但是见识增长了,了解了很多新的内容,这些内容对于之后开发肯定有很大的帮助。加油吧!

小额支持我写出更好的文章~