实习笔记

2014年11月中旬去了武汉一家公司实习,做的是server test。工资不高,更重要的是每天来回时间超过2个小时 !눈_눈 我本来就是夜猫子,早上因为起不了床经常找各种理由请假,终于在12月底,因为要期末考试的关系,便提了辞呈,满打满算也就去上了20多天班눈_눈

虽然只工作了1个月时间,但是实际上还是学到了很多东西。

学了Python,django,mongodb,python的自动化测试,学了用git,xmind,mongovue,navicat,JIRA等工具。

这里都是我在实习期间的一些小心得,当时想到什么看到什么就会记录在麦库记事上,这两天回家正好整理一下。另外的学习之路会另外开文章讲。

这些小心得一部分是上网翻到的大牛说的很有道理的话,直接摘录下来,一部分是我碰到了某些问题的感悟,比较主观,而且我技术真的不行,所以欢迎各位指正。

ps:这些tips没什么顺序,而且比较杂。

-------------------------------------------------------------------------------------------------------------------------------------------

1.前端和后台的PK! 数据验证这种到底是前端写还是后台写,开始写之前一定要明确

----在我所经历的那个项目中(那是一个内部后台管理系统),数据验证是让后台写的,当时说原因好像是前端的工作量太大,没时间写,呵呵눈_눈  

不过我后来又去翻了翻网友的说法,实际上前端和后台都要写,即使通过了前端的js校验,后台也要校验,防止数据安全隐患。

前台校验只是加强了填写体验。 如果后台不单要校验数据,而且还要格式化数据。比如根据你数据库字段或程序的限制来格式化。如果不进行校验与格式化,别人可能进行跨站攻击等操作。

浏览器上有一种东西叫做“开发人员工具”(或者网页调试工具,比如fireBug),可以随心所欲地修改网页上的字段值,更可以修改或禁用Javascript脚本 ,还有一种东西叫做“模拟提交”,比如用VB、VC写得自动注册用户等工具。

因为你的前台验证并不一定在每个客户端都会执行,比如某个客户端把IE的安全等级调到最高(或者禁用了js),那么所有JS实现的效果都会失效,那这时的前台验证就形同虚设,这时后台的验证也就显得很重要了 


2.上班时间是你的产出时间,不是你的积累时间

3.http://task.zhubajie.com/o-rjkf/ ------上班的时候无意间翻到的,感觉对自己编码能力有信心的同学可以去赚赚外快


4.曾宪杰:我是07年6月加入淘宝,当时淘宝已经是一个日成交超过1亿元的网站。网站从03年开始基本是一个LAMP架构,后面把应用从PHP迁移到了Java,数据库从Mysql迁移到了Oracle,在07年的时候,基本是一个集中式的应用,除了使用Oracle外,也有自研的搜索、缓存、分布式文件系统等基础设施。

而07年开始,主要的改造工作是围绕着应用和DB的扩展性做的,在应用方面,我们引入了服务框架,解决了应用服务化的问题;引入了消息中间件,完成了应用的解耦;引入了分布式数据层并且完成了数据变更通知以及数据迁移的系统,数据库也从Oracle换成了Mysql,完成了底层的数据库的伸缩性改造,通过这样的改造,使得我们的集中式的网站变成了一个大型的分布式系统,并且在一定程度内,在应用和数据库层面都是可以做到水平扩展的,这为业务的飞速发展以及应对高峰流量奠定了重要的基础。

上述过程中我提到的服务框架、消息中间件、分布式数据层以及支撑这三个重要系统的软负载中心、集中配置管理中心都是自研的。


曾宪杰: 细节是魔鬼,一些架构从比较抽象的角度去看,可能比较简单,但是很大的挑战就是细节,这些细节有具体产品实现的细节,也有和业务相关的需求细节。

从我们的经验,从一个功能的构思到最终完全做好,会遇到很多的问题,另外一个方面是一致性,一致性尤其是强一致性的保障是非常具有挑战的事情,再有一个是完全的自动化,这个部分也很困难,一不留神就容易产生雪崩或者不一致等严重的问题,具体需要避免哪些坑,这个在不同的产品上会不一样。

总体来说,在实现中花掉绝大部分时间是用于思考和解决哪些很异常的情况下的实现。


5.从oracle这种关系数据库转mongoDB这种schema-free的nosql数据库时候还不太适应,因为又很多冗余数据,而且mongo只支持简单的查询,但是mongo的优点就在于此。mongoDB海量数据查询速度快,很多公司拿它当缓存用,就是内存数据库。冗余就是空间换时间,但是这样会带来一个问题就是冗余数据的同步问题,不知道你怎么是怎么解决这个问题的。---这个问题我先放在这里等有时间再去查资料


6.Python自动化测试框架selenium的问题:这个问题我也遇到了,这里直接摘录网友的评论

今天跑脚本发现出现了一个报错:Element is not clickable at point (993, 61). Other element would receive the click

分析原因,首先肯定不是因为页面元素不存在而无法点击。

再看了一下target-report中的对应日志,发现是执行到click的时候出现的:at com.xiami.hongcha.util.ui.ElementUtil.click(ElementUtil.java:21)

实际上这个页面元素是存在的,而是被另外一个弹层挡住了



7.IBM老总早说了,服务外包的核心就是“人”——懂一些电脑知识、有一门专业知识、会一种外语的复合型人才。

这里挂一个对日软件外包的文章: http://kang.iteye.com/blog/228525



8.python中,万物皆对象。python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址。

python中,对象分为可变(mutable)和不可变(immutable)两种类型。

组(tuple)、数值型(number)、字符串(string)均为不可变对象,而字典型(dictionary)和列表型(list)的对象是可变对象。

字段的key值只能是不可变对象,即只能是


9.jsp写注释,要使用服务器端注释<% %>, 不要使用客户端注释

你可能感兴趣的:(实习)