回忆一 --- 去年6月面试进入公司的日子

2007年6月,我投了一份简历到后来一直工作的公司应聘,做对日软件外包业务的,不过有翻译,对日语要求不高。

我投递了简历的第二天被通知面试。还好,因为技术考题偏于数据结构和算法,而不是实际项目经验,我答了满分。

然后做了上机题 --- 实现一个购物车,没有需求描述,没有任何资料,就是购物车。ok, 我明白了,这个东西要是

做大了恐怕做几天都做不完,做小了马上就搞定。就做了个小的,搞定了。然后公司通知下次董事长从日本回来面试,

第一轮考试通过了。

过了好几天,有一天接到通知,董事长回来了,让我去谈谈。我去的时候的确没想到董事长是程序员出生的,虽然

不懂.net技术,是c/c++牛人。进了会议室,董事长魁梧的身材,首先是英语跟我交流一阵子,我够呛,口语不行啊,

还好,他说的简单的,我能应付一阵子;过一回又换成日语,我刚刚培训了半年,还是初级的,就是关于个人简介方面

的,我勉强说的出来。然后董事长就开始考技术了,一开始一些c/c++方面的东西我完全能应付。后来来了个刁钻的,

怎么用c语言进行面向对象的程序设计,我是老实人,马上就说以前从未考虑过(当然后来也没有去考虑,不知道这个问题

有没有答案)。最后,董事长对我说,给你一台386的机器,dos系统,给我实现一个www浏览器出来,在白板上说明如

何做。我当时脑子一热 --- 以前也没有想过阿!!! 但是随即镇定下来,在白板上开始架构这个系统,最终董事长满意。

出了会议室,我长吸一口气,乖乖,总算完事了。

ok,董事长把dotnet组的项目经理带来和我认识一下,我还很高兴啊!!!

结果董事长说,项目组有个问题现在解决不了,让我看看。啊!!! 我心里一惊,这下可就麻烦了。快6点了,要下班了。

不知是什么问题,我先看看吧。再说以前的项目不是我搞得,解决不了问题也没啥。我就去了dotnet组的工作区。

ok,测试人员和开发人员给我说,现在的一个web应用,已经在日本客户那边上线了,但是用LoadRunner进行50个

并发的测试,cpu利用率100%。我们在本地测试,还是双核心的cpu,两个核都被耗尽了。 我看着开发人员的屏幕,

dot2005的开发环境我熟悉,其它的我都不熟悉。我熟悉了一下应用的大致架构,ok,也没法熟悉,代码基本上是没什

么组织,也没有整体的良好架构。到处是过来过去的调用,一团乱麻。当然,后来才听说一部分代码是2个学校的女研究

生实习,写了很多代码,在我去之前突然离职,她们没有合同,当然也不用办什么手续,只是不辞而别。我想,那就这

样呗。等我上班了慢慢解决吧。可是我看到其它项目组都下班走人了,就这个项目组没走人,还有董事长刚从日本过来,

就坐在旁边不走了。我想,这下完了,不解决不行了。董事长说:“这个项目已经延期了,日方要求必须把cpu耗尽的

问题解决了,我已经2晚上没睡着了”。我一听,脑子又一热,怎么会碰上这种事,我面试的那天就已经要上班了。。。,

而且我对这个项目一点都不了解阿!!!万一搞不出来,不用说了,有什么后果大家可以帮我想到。谁都不希望给公司领导

一个自己的无能的印象。

没法,上去碰运气吧。这个时候我才坐到了板凳上,开始一个一个分析LoadRunner请求的页面,从页面上的代码里面

一个一个地往深处找。碰运气吧。项目做了几个月,快结束了,代码也不是我一两天能搞明白的。不过越看,越让你不想看。

代码不仅是乱麻一团,而且,那些实习生把很多代码写入了.aspx文件。采用以前asp的做法。叫人痛苦不堪,真想放弃阿!!!

但是不能放弃,过了20分钟左右,我终于找到一个页面上GridView控件的绑定事件,事件响应函数里面有个for循环。

因为事件的绑定是放在.aspx页面上的,而不是在.cs里面采用 += 的形式,过了很长时间才找到。唉!!! 我可不想再给

人整理这样的项目。

好,页面上绑定了几十条记录,那么时间复杂度和这个绑定事件的for循环次数是一个乘积关系。我再找到for{}里面的

一个工具函数,原来来自一个类。是处理关键字什么的, 进取后又是一个for循环。 然后时间复杂度就变成了一个三重

for循环的效果。50个并发,服务器吃不消也是可以理解的。我叫开发人员把这个东西想办法重写,另外好几个页面都是

如此的做法。开发人员重写后cpu利用率降到50%以下。董事长还不满意。我又在那里找阿找,找阿找。最后,到了晚上

11点,cpu利用率降低到30%以下。董事长才露出笑容,让这个项目组下班。项目经理请大家吃饭。

还好,我后来进了公司,除了给音乐栏目写了左边的二级菜单,制作了多国语言选择菜单,然后再也没有和这个项目

打过交道。要是让我做好,我就需要重新开发,从公司角度,这是不可能的。后来只有维护人员的优化再优化。

这个站点服务器在日本:  http://www.newsbbtv.com

这是我的就职经历,拿出来与大家分享。不过希望以后不再遇到这种不平常的经历,让人高度紧张。

转载于:https://www.cnblogs.com/worldreason/archive/2008/06/11/1217403.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Magicodes.IE之快速导出Excel

前言总是有很多朋友咨询Magicodes.IE如何基于ASP.NET Core导出Excel,出于从框架的体验和易用性的角度,Magicodes.IE决定对Excel的导出进行独立封装,以便于大家更易于使用,开箱即用。注意:Magicodes.IE是从框架的易用性…

理解T-SQL: 脚本和批处理

脚本能够将相应的T-SQL命令组织起来,实现一个完整的功能目标。脚本提供了变量、分支、循环等控制语句,可以用来实现一些复杂的任务。通过组织一系列的SQL命令编成脚本和批处理,也减低了数据库管理的复杂性。 1. USE语句 没啥好讲的&#xff0…

凉凉!面试阿里我被Redis技术专题给搞的昏倒在地~

凉凉!面试阿里我被Redis技术专题给弄死了~ 📚我本以为我可以像是别的博主一样去阿里面试随随便便,因为Redis,我直接被阿里大佬淦翻在地上 好了不装了 没过没关系 我总结了一些这些最难的知识点!!&#xff0…

与众不同 制作会唱歌的WinRAR - imsoft.cnblogs

为了使用方便,我们可能会把RAR压缩包制作成自解压文件。WinRAR自带的自解压模块虽然使用很方便,但千篇一律的外观看起来实在 乏味。其实,只要通过简单改造,你就可以制作出与众不同,声色俱佳的WinRAR自解压界面&#xf…

看到这一幕,我甚至都想戒烟了。。 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅(图源网络,侵权删)

做个中国清官网,有人感兴趣吗

关于官员或者放宽到公务员群体的廉洁问题,从来都是公众关注的热点和焦点,如果能够运用网络的力量,荐贤戒腐,也是一个很有意义的事情。所以,有了这样一个想法,想做一个中国清官网(暂定名&#xf…

为什么 Linux 上的 Asp.NET 5 需要 Kestrel ?

咨询区 Freeman Helmuth:当我在 Linux 上部署 ASP.NET 5 时,我试着了解整个 Web应用程序框架,所有的文档我都看过,包括这篇 http://docs.asp.net/en/latest/conceptual-overview/aspnet.html#servers 都没有找到我想要的答案。为…

针对Spring的Spring Retry 我发现了这样一个大家都不知道的技巧!

外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失败重试策略重新调用 API 接口来获取。重试策略在服务治理方面也有很广泛的使用,通过定时检测&…

c#3.0关于JSON简单操作的实用帮助类(泛型实现)

关于json的操作,网上一搜一大把。避免重复造轮子,整理发布一个笔者在项目开发中经常用到的一个json实用帮助类,泛型实现,非常方便。不废话了,贴代码:1、json操作的帮助类: Codeusing System;usi…

谁还没个黑历史了。。。 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅(图源网络,侵权删)

ios开发-第二天

1.#import可保证无论头文件出现多少次,只包含一次,而#include相反。 2.如果用户不提供文件路径的话,那么argc的值为1,可以用来做是否错误的判断。 3.面向对象和面向过程的区别 面向过程是分析出解决问题的步骤&#xf…

ASP.NET创建文件并写入内容

本文从最基本的操作开始,解释在ASP.NET中文件处理的概念,包括如从一个文件中读取内容、如何向一个文件中写入内容和如何删除一个文件。   前面已经提到,要想在ASP.NET 页面中进行文件处理,必须要有"System.IO"名称空间…

C# 虚方法与抽象方法区别

虚方法是必须要实现的,只有接口或者抽象方法才没有实现体,什么是实现体,就是方法的那对大括号:下面举例:public abstract void Fn1();//定义一个抽象方法 public vitrual void Fn2(){ };//定义一个虚方法(那对大括号必…

京东面试官:呦,你对中间件 Mycat了解的还挺深~

1.数据切分概念 数据的切分[(Sharding)]根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机))之上,这种切可以称之为数据的垂直…

Redis与Memcached的区别

2019独角兽企业重金招聘Python工程师标准>>> 传统MySQL Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量…

“高仿版拼多多”宣告破产!曾一年收割1.3亿用户,如今自救失败负债16亿

全世界只有3.14 % 的人关注了青少年数学之旅又一家改变世界的互联网公司跑路了啊?挣扎数月的淘集集最终也回天乏术了。淘集集并购重组最终失败,供应商何时能拿到被拖欠的货款仍然遥遥无期。这家主打比“拼多多”更下沉市场的社交电商,平台上线…

处在哪个阶段?

在职业生涯中,可以划分出多个阶段,但是如下3个阶段也许是最粗糙和实在的: 1、入门级,在别人的领导下可以完成工作。 2、成熟级,可以独立完成工作。 3、精英级,可以领到别人完成工作。 你处在哪个阶段&#…

.net知识和学习方法系列(十四)TraceListener的应用

在前一往上一往篇文章中,我们用到一个TextWriterTraceListener,它是为监视跟踪和调试输出的侦听器,对于跟踪调试的监听器还有两个,分别是:DefaultTraceListener和EventLogTraceListener,这三个跟踪调试侦听…

在VS Code中直接调试Web程序,是怎样一种体验?

前言要在VS Code中启动Chrome或Microsoft Edge中调试任何Web程序,您只需按F5或选择菜单"运行"->"启动调试"来启动会话。你可以选择在Chrome、Edge或Node.js中进行调试。Edge DevTools如果选择了Edge进行调试,你会发现调试工具条上…

[转]Multiple outputs from T4 made easy

本文转自:http://damieng.com/blog/2009/01/22/multiple-outputs-from-t4-made-easy One of the things I wanted my LINQ to SQL T4 templates to do was be able to split the output into a file-per-entity. Existing solutions used either a separate set of …