`
tulunta
  • 浏览: 359271 次
文章分类
社区版块
存档分类
最新评论

《JeolOnSoftware》

 
阅读更多

joel on software大家应该比较熟悉了:

http://www.joelonsoftware.com/index.html


关于jeol,可以看下他的背景,耶鲁大学,91年进入微软,在excel组作为programmer manager,而且是在一线编程的,后来又经历的一些公司,最后单干,他们的trello.com非常棒,几个同事和我在用。

简而言之,这哥们很hardcore,说的很多东西很不错。

我读的这个纸版的书《jeolOnSoftware》(http://book.douban.com/subject/1426838/)其实比较早了,中文翻译版是05年出的。


这个书里的确有含金量高的地方,但是也有很多地方比较基础,笔记加一些个人评论:


14 不要被太空架构师吓到

jeol描述了这样一群人,他们喜欢做很多抽象,以至于脱离了现实,作为理论很好,但是对于现实却没有意义,jeol称之为太空架构师。

他们倾向于在大公司里面任职,只有这样的公司才能供养这样的身份巨高,却对基本业务没什么贡献的人,喜欢为了创新而创新,喜欢搞革命,弄个大体系。。。。

这些东西的确是牛的,但需要踏踏实实的积累和卓越的能力。

这篇文章里,jeol更多的是吐槽,的确是,这样的人本身常常在公司里面浪费公司的资源(高薪+引来的抱怨),如果跳出来指导项目开发,很可能把一个团队的青春年华毁掉,远离这些不脚踏实地的人吧。

吐槽之外,也不能一概而论的说抽象和革命性的东西都是不好的,毕竟我们还是时不时看见有革命性的东西发生,但是个人觉得一个是要尊重客观事实和规律,脚踏实地,不要强求,更不要忽悠,做一个真正让人尊敬的开发者。


15 fire and motion

这是一个军事广泛运用的基本策略,就是向敌人开火,敌人肯定要低头,然后你可以趁着这个机会(在敌人不知道的情况下)抢占更有利的地方,但是你一定要移动,否则敌人知道你的地方,在你换弹夹的时候,就会反击你。

这的确是一个很好的策略,在软件竞争中常常用到,大公司会做这样的火力覆盖:你不用买我的产品,从更便宜的小公司买也可以,但是务必要保证支持xml/soap/j2ee否则你可要挂。于是小公司在谈的时候就不得不调整自己的开发,支持本来不需要的这些特性,这样自己的成本和速度的优势就被削弱,而大公司则继续前进。

或者大公司迫使你来跟随,然后它自己来向有利的地方前进。

yeah, fire and motion.


18 二元文化

这个概括我很喜欢:unix是想让程序员爽的系统,windows是想让人民群众爽的系统。

因此两个系统有着很大的不同,应用场所也很不同。

反言之,你如果想做一个卖给大众的东西,你就不能不顾大众的需求,按着自己觉得酷的方式来做。


21 激励

原来的题目是“重金奖励害多利少”,我不是很认同,但是里面说的内容还是很有同感的。

讲的是微软excel团队的愣头青hr认为这些行业内最顶级的人才仅仅需要钱就可以驱动,他们设定各种奖项,然后向调戏幼儿园小孩(我觉得也很像耍猴)一样去设立一个奖项,期望这些开发者能够玩命,谁做的好就给谁。

微软和jeol需要的人才肯定是vision驱动的,就像《魔鬼代言人》里面撒旦和罗麦斯首先谈的是要干什么(统治世界xxx),然后大家达成共识了,没什么好谈了,罗麦斯才开玩笑的说我们谈谈money吧,撒旦哈哈一笑,说“that's the easy part”,这才是吸引顶级人才的方式。

对顶级人才用耍猴的策略,这样那样的原因,总是找一些不懂开发者的人来“激励”开发者,而且这些manager们非常难有


22 不配备测试人员的5个原因

这个部分后面工作中还真有遇到对测试的重要性认识很外行的情况,不过这个也不是很大的问题,知道就好了,而且没有发现这一点也不意外,尤其是在google宣称程序员自己测试巨牛无比之后。

首先这是一个在实际生产中的客观事实:

在微软(我上一家游戏公司也如此)有着非常大规模很正规的测试团队,以至于所有的问题都会被抓出来,然后干掉。

我在上一家公司惊奇的发现,最后游戏发售的时候如此的稳定,没有bug,根本就不是程序员写的那么完美,几乎可以说就是测试团队的功劳,庞大的测试团队几乎和开发团队一样大,从项目早期就开始有,一天天不间断的测试,然后通过正规的bug数据库,反馈给开发组,开发组再作为task分配给各个人。

测试团队如同定海神针一样,作为开发团队的后盾存在,记得一次我做了一个巨大的改动,一次提交了狂加班一个月的很具颠覆性的改动,心里颇为不安(尽管我一再检查了代码,确认都ok,但是规模太大了,有过一定开发经验的人都会知道,这里几乎就一定会有问题,不太可能一次性通过),然后测试团队针对这样的改动,分配了较多的人,连续测了几天,都ok,然后我就可以把心放下,回家睡个安稳觉了----定海神针。

测试团队至关重要基于这样的事实:

  • 地球上不存在写程序没bug的程序员,而且一般我们所在的公司里面充满了水平很一般的程序员,测试团队是必须要有的,当然这个测试团队可以是程序员自己,也可以是一个专门的测试团队,但是必须要有。
  • 测试并不是一个巨简单的工作,好的测试人员的抓错能力和差的相差很大,软件越是复杂,这个越是大,作为最复杂的软件之一:游戏,程序员的测试能力只能用很差来形容,简言之,程序员自己的测试能力是不够的。
  • 客观地说,程序的人力成本毕竟是要高于测试人员的,出于成本的考虑,也需要有专门的测试团队。
    • 实际上,比较好的公司会做很多这样的成本计算和控制,比如给程序员最好的机器配置,办公室搬家的时候有专门的人来搬
所以逻辑很清楚了,必须要有测试,而且有专门的测试团队是性价比最高的。
另外一个公司里面容易犯的错误就是测试人员的职业发展问题,如果测试人员只能止步于测试,那么可以想象,肯定是“流水的兵”这样的情况,而我们需要的是有资深的测试带着一个团队的测试来工作,那么给测试人员有其他的发展空间是很必要的(比如转成designer等等)

23 任务切换的代价
原标题是”任务换人有害无益“。
jeol谈到同时做多个任务的代价要高于一个个做,这个论点在有一年的gdc上也有一个producer说过,因为我们的大脑就是这么设计的:单任务执行能力强,多任务执行能力差。
尽管有人有着很好的多任务处理能力,但是对于绝大多数来说,同样的能力下,一个个任务完成是最高效的。
至于任务换人。。。那是最低效的事情之一了,除非必须如此,否则最好不要这样。这里的飞机就多多了,说到这里,我觉得程序员最强者的一个重要元素就是能淡泊程序员典型的自我欲望,比如说在另外一个人接手的时候,会有一个倾向就是,如果按照前人的做法,就显不出我牛了,然后潜意识里就要自己搞一套,在这样的潜意识下,所以符合这个方向的东西就会被夸大,给项目组x个理由要重搞,或者自己直接重搞。
在《浪潮之巅》里面讲到盖茨对dos的支持,可以说是能够超越程序员自我欲望的一个典型,不是很理想化的直接抛弃一个落后的东西,而是更加理智的去采取最合适的策略。

另外一个切肤之痛就是我现在经历的引擎和游戏一同开发,美术团队等待引擎工具的功能来产出,项目自己也有milestone的压力,那么很多feature都是做到一个80分即提交,然后转向下一个,有问题和改进的需要再回头做。

这个是在”引擎和游戏需要一同开发“的大前提下的最优策略,但是相比引擎先行1年这样的情况就有质的不同,这种情况下,完全可以更加深远的设计,更加少的任务切换,和专注的实现。


24 重写代码

原标题是”绝不去做的事情,第一部“

里面写了网景公司花了3年时间,重写了他们认为很烂的代码,结果导致错过了大好的竞争机会,市场占有率直线下降(从%90到%4)。

嗯,对于这种案例我觉得也没有太大意思,这么多年来,你可以找到通过重写把自己弄死的,也可以找到重写进而脱胎换骨的,这不是一个简单的一概而论的”应该还是不应该“的问题。

比如我邮件的签名档就是carmack给abrash作序的一句话:

“Much heroic programming ensued. Several hundred thousand lines of code were written. And rewritten. And rewritten. And rewritten”.

在做网景这样的公司战略级重写决定权衡的时候,起码要有商业产品端的大局观和技术方面的纵深思考两方面的权衡,还是那句话,程序员需要超越自己作为程序员来思考问题才会得到一个正确的结果。

那么为什么程序员爱重写呢,jeol提的两点我很赞同:

  • 程序员有一种做完美建筑师的倾向,其实这个倾向是程序员技术快速持续提升的重要价值观,在作为纯粹技术来说,非常好的一个特点,但是实际做产品的时候,就需要产品端的视野来平衡
  • 阅读代码比写代码要困难的多,尤其是经过产品化的代码,常常会很是”很丑陋“以至于阅读和搞懂这样的代码非常的痛苦,重写则爽多了
重写为什么危险呢?
  • 丑陋的代码或许是必须如此
    • 它就是有那么多奇怪诡异的情况要处理,也就是你再写一遍也差不多,同时你浪费了那么多时间
  • 那些诡异情况,常常是在一开始写的时候想不到的,然后实际测试或者上市的时候才发现的,然后才添加了,原始代码的丑陋中蕴含了大量的通过测试(测试团队或者用户使用)才获得特殊需求,而这种在一开始很理想化的设计的时候几乎都是考虑不到,这部分极有可能要再走一遍。
  • 如果和原始团队水平大抵相当的话,那么重写之后大抵也是类似的水准
那么不妨跳出”重写“的这个局限,可以看出代码如果能够在设计和实现上更加的优美,在诡异需求的时候能够有足够的文档和说明,这是多么重要的啊,一开始就把事情做对,那么就不会陷入”泥潭中的怪兽“的绝境,也不会给项目带来”需要重写“的危机,糟糕的代码即便最后决定不重写,也会大幅度拖慢项目进展。
一份能够经过时间考验的代码,对初始的奠基人的要求是超极高的,务必要以虔诚谨慎的态度投入其中。

26&27 了解内部机制

这一部分的道理很简单,但是我们极易因为懒惰而犯这样的错误。
就是现在东西越来越大越来越复杂,越来越多的东西被抽象,但是要把东西用对用好(而不是随便用用),你必须还是要懂的其内部的机制(这也随着规模越来越大,变得越来越难了),而内部机制的比例规模就像冰山未露出的部分那么大。
比如STL,了解了其中的内存分配机制之后,你就很容易写出不仅对,而且高效的实现出来。
游戏引擎也是如此。
最后jeol给了这样的建议,如果你没法找到一位你将要依赖的语言和平台方面有几年扎扎实实的实践经验的专家之前(套用引擎也适用),不要贸然启动一个项目。

29 全能型管理团队
jeol在这里列举了大量事实,说明商业上很棒的人,但是对技术不懂的人,根本无法领导一个软件公司。
同时如同网景公司(同时也让我想起了idsoftware)这种,对技术很在行,但是商业方面很有欠缺的人也很难领导好一个公司。
尽管很难,但是这就是一个事实,要想让公司发展的好,管理团队就需要能够很好理解并且喜爱技术和商业。

31 作为哼哈二将,只管去做事

这一章颇有意义,项目管理不只是项目负责人才能做的事情,做为底层的开发者一样可以做很多,方法就是:只管去做就好了。

项目组里有这样那样的问题,但是你可以用你做事的正能量来影响项目组,先保证自己的事情完成,然后去做一些帮助项目组的事情(设置sourcecontrol,bug数据库,写一些文档。。。)。


32 放权问题

如果下属足够强力可以信任,那么就交给他去做,否则要干预,单纯说信任或者说控制都是不对的。


33,要好好设计

极限编程里面提倡的是不要过度设计,但是很多人歪曲成不要设计,上来搞起,不行再改。。。然后就倒霉了

要好好设计,就这么简单


35,提防非自主开发综合症

这一章我觉得是这本书里最棒的一章,很精辟的谈论了我们的常常会遇到的,而且是战略级的问题:是自己来做还是使用别人的。

jeol给出的答案是(我也非常赞同):

如果这个是你的核心业务,如果程序开发团队能做好,或者不会明显差,那么即便会耗费很大的精力,还是要保证自己来做。

这就是ue和ce里面的stl部分都自己来实现的原因,因为性能是engine的核心业务,而stl在性能和一些feature上的支持并不好,所以一些容器类要自己来实现。

而tree什么的对于ue并不是核心业务,那么使用第三方的speedtree未尝不可。

究其原因就是,核心业务方面不只是要求能够完成,而且有着非常高的要求,比如engine里面就要尽可能的快,效果好,开发效率高,这是真正定义你的价值的部分。

而重用一些第三方的东西,一般来说不会出现能够完全满足你的需求和质量要求的东西(否则你就没有必要存在了),而你需要保持一个在漫长开发周期中,对核心业务的控制力和持续提升的能力,这只有你自己做才能实现。

当然如果自己搞不定,那还是多快好省的重用第三方的为好。


36 ben&jerry与amazon

这里谈及了一个比较有意思的商业策略:

  • 如果市场比较空,那么amazon这种使用大资金大投入去抢占市场的方式是比较好的
    • 市场比较空的时候,抢占市场最重要,投入的资源几乎一定会有产出,时间才是最重要的因素,如果能用钱来换时间,那么就去做,比如核心技术人员要搬家,那么公司就应该雇人帮他搬,然后让他把搬家的时间拿来工作
  • 如果市场比较饱和,那么就要走ben&jerry公司的方式,一步一个脚印的去积累,先保证不死,然后去一点点扩大自己的生存空间
37 鸡与蛋的问题
这个在手机上比较明显的问题,系统要卖的多才会有人来给这个系统开发软件,但是要有人开发软件才会卖的多,这个鸡与蛋的问题。
实际解决的时候jeol提到了其中一个方面,即兼容性。
在软件开发过程中,对于不是相距很遥远的软件提供兼容性,可以让你不至于失去很多用户,进而能够保持鸡与蛋问题上的平衡。
实际中,苹果的app store通过很棒的政策,吸引开发者来开发,进而和苹果产品互相促进也很棒。

里面一个示例让我印象很深刻,win95的内存机制更准确,但是当时流行的软件simcity有一个bug,既是释放了一个内存,然后又立即使用它,在原先的pre win95的系统的内存机制下可以,但是win95不行,于是ms就反汇编了simcity,然后专门提供了一个simcity的模式,这样simcity爱好者在win95下也能很好的玩到simcity。
纯技术上看,这简直太下贱了,但是在商业行为上,意义重大。

40 公开源代码的经济因素
这里是一个微观经济学的一个定律:对产品的需求在其配属品价格降低的时候提高了。
比如去海南的机票便宜了,那么去海南旅游的人就会变多,顶饭店的人也会变多一样。
这就是为什么大公司会开发如此多的免费产品,ibm会大力开发eclipse,sony和微软都会给游戏机提供免费的(当然还是比较粗糙)的游戏引擎雏形。


超越时代的技术
在读这本书的时候,里面不停地提到为数不少的很超前的技术,但是都因为不适合当下结果终结了。
这就好像自然界的淘汰法则一样,如果原始人突然有一群人变异,变成智力很发达但是体力不行,或者抵抗力不行,那么这种在几十万年后会成为宠儿的人就会被自然界因为抵御不了这样那样的危险而淘汰。
适者生存,就这么简单!






分享到:
评论

相关推荐

    基于STM32通过PWM驱动直流电机

    工程代码基于STM32F103C8T6,使用PWM输出驱动电机,电机驱动使用TB6612,通过按键控制电机速度,并且速度通过OLED显示屏进行显示 使用到的硬件:STM32F103C8T6最小系统板,四针脚OLED显示屏,直流电机,按键,TB6612电机驱动模块

    最新微信文章编辑器排版工具程序源码.rar

    最新微信文章编辑器排版工具程序源码.rar最新微信文章编辑器排版工具程序源码.rar最新微信文章编辑器排版工具程序源码.rar

    信息办公电信计费系统完整代码-netctossconformity.rar

    这个压缩包 "netctossconformity.rar" 包含了一套电信计费系统的完整代码,它是针对计算机专业学生或开发者的JSP源码资料。这套系统的设计旨在为电信运营商提供一个可靠、高效的计费解决方案。通常,这种系统会涉及到用户账户管理、费用计算、账单生成、支付处理以及数据报告等功能模块。在内容上,该资料包可能包括了前端用户界面和后端服务器逻辑的源代码,使用JSP(Java Server Pages)技术实现。前端可能会涵盖用户注册、登录、查看账单和支付历史等操作的用户界面,而后端则包含数据库交互、计费算法、用户验证和安全性措施等关键功能。对于学习者来说,这个资料包是一个宝贵的实践资源,可以帮助他们理解电信计费系统的工作原理,以及如何运用JSP技术开发复杂的商业应用。通过分析这些代码,可以加深对Java Web技术栈的理解,包括但不限于Servlet API、JDBC(Java Database Connectivity)、HTML/CSS/JavaScript,以及可能涉及的框架如Spring或Struts。此外,这个资料包也可能含有一些文档,例如系统设计说明、代码结构介绍、部

    交流电桥实验(95).zip

    交流电桥实验(95).zip

    matlab基于四自由度机械臂的轨迹规划源码.zip

    优秀源码设计,详情请查看资源内容

    MRU3-2保护技术简化电压继电器对称分量评估 SEG

    MRU3-2保护技术简化电压继电器对称分量评估 MRU3-2保护技术简单电压继电器,具有对称分量评估功能

    图3-7.zip

    图3-7.zip

    基于matlab开发的多元散射校正和变量标准化Matlab处理程序,可以对建模前的原始数据进行校正、处理.rar

    基于matlab开发的多元散射校正和变量标准化Matlab处理程序,可以对建模前的原始数据进行校正、处理.rar

    新建 文本文档.txt

    新建 文本文档.txt

    最新获取QQ微信头像橘头像阁PHP源码下载.rar

    最新获取QQ微信头像橘头像阁PHP源码下载.rar最新获取QQ微信头像橘头像阁PHP源码下载.rar

    3D模型004,可用于建模、GIS、BIM、CIM学习

    3D模型004,可用于建模、GIS、BIM、CIM学习

    node-v6.7.0.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    其他类别动态显示JSP服务器内存的Ajax程序 图像版-systemjc.rar

    在当今的Web开发中,实时监控服务器性能是至关重要的。其中,动态显示JSP服务器内存的Ajax程序图像版_systemjc.rar是一个为开发者和系统管理员提供便利的计算机专业JSP源码资料包。这个资料包的核心是一个高效的Ajax程序,它能够实时获取并展示JSP服务器的内存使用情况。通过使用这一工具,用户可以在一个直观的界面上看到服务器内存的使用率、已使用内存、可用内存等关键信息,而这一切都无需刷新页面。这得益于Ajax技术的强大功能,它允许在后台与服务器进行异步通信,从而获取最新的数据并更新前端界面。这个资料包不仅包含了完整的源代码,还提供了详细的文档和注释,使得即使是初级的JSP开发者也能够轻松地部署和使用。此外,它的图像版设计使得数据的展示更加直观和友好,帮助用户快速识别任何潜在的问题。总的来说,动态显示JSP服务器内存的Ajax程序图像版_systemjc.rar是一个强大、实用且易于使用的JSP源码资料包,它为实时监控服务器性能提供了一个有效的解决方案。重新回答||

    引领AI视频生成技术新潮流之Sora AI

    Sora AI,作为OpenAI继ChatGPT之后的又一重磅力作,以其独特的文本到视频模型技术,在AI内容创作领域掀起了一场革命性的风暴。本文将详细探讨Sora AI的技术特点、应用场景以及未来发展趋势,展现其在视频制作、广告、教育和娱乐产业中的巨大潜力。 Sora AI作为OpenAI的又一力作,以其独特的文本到视频模型技术引领了AI视频生成技术的新潮流。通过深入了解Sora AI的技术特点、应用场景和未来发展趋势,我们可以看到它在视频制作、广告、教育和娱乐产业中的巨大潜力和广阔前景。然而,我们也应清醒地认识到,技术的发展总是伴随着挑战和问题,只有不断探索和解决这些问题,才能让Sora AI更好地服务于人类社会。

    新闻文章NTsky新闻发布系统 v1.0稳定版-18655.rar

    NTsky新闻发布系统 v1.0稳定版_18655.rar是一款专为计算机专业人士设计的JSP源码资料包。这款资料包的主要功能是帮助用户快速、高效地管理和发布新闻信息。它采用了先进的JSP技术,结合了数据库管理系统,使得新闻的发布和管理变得简单而直观。该资料包包含了完整的源代码,用户可以根据自己的需求进行修改和优化。同时,它还提供了详细的使用说明和技术文档,即使是对JSP技术不太熟悉的用户,也能快速上手。此外,该资料包还具有良好的用户界面设计,使得操作更加人性化。NTsky新闻发布系统 v1.0稳定版_18655.rar的另一个优点是其稳定性。经过多次测试和优化,该系统已经达到了稳定运行的状态,可以满足用户在各种环境下的使用需求。无论是在个人电脑上,还是在服务器上,都能稳定运行。总的来说,NTsky新闻发布系统 v1.0稳定版_18655.rar是一款功能强大、操作简便、稳定性高的JSP源码资料包。无论是对于专业的计算机人士,还是对于初学者,都是一个很好的学习和使用工具。重新回答||

    node-v6.17.1.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    245ssm-mysql-jsp 在线租房系统.zip(可运行源码+数据库文件+文档)

    此次开发的是一款在线的租房管理系统,该系统从功能上来看,应该具备以下模块: (1)房源信息模块:房源信息展示、房源信息更新、房源信息增加、房源信息删除; (2)账户管理模块:账户登录、账户绑定、账户管理; (3)租金结算模块:每月租金信息、租金交付功能、月租金收入总额统计; (4)房屋租赁合同管理模块:房屋租赁合同录入、房屋租赁合同展示、房屋租赁价格修改、房屋租赁合同终止; (5)报障模块:租客报账、管理员报障审核、租客报障统计; (6)日程模块:收租日程显示; 从角色的需求上来划分,应当具有三个角色要素,分别为租客、出租方以及管理员三个角色,租客能够实现在线的查看房源,申请租房,签订租赁合同以及租金每月支付等功能。房东应当可以实现租金收入的统计,租赁合同的展示以及租赁价格的修改等。管理员能够通过后台的管理对网站信息进行常规化的管理操作。 通过SSM框架技术搭建在线租房网站,能够实现出租方在线登记房源信息,租赁方能够在线查看消息,并在线与出租人进行沟通,可以实现在线租房申请。后台的管理员能够通过管理手段来对整个系统进行维护和管理。

    udacity机器学习工程师毕业项目.zip

    机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径。 机器学习的发展历程可以追溯到20世纪50年代,当时Arthur Samuel在IBM开发了第一个自我学习程序,一个西洋棋程序,这标志着机器学习的起步。随后,Frank Rosenblatt发明了第一个人工神经网络模型——感知机。在接下来的几十年里,机器学习领域取得了许多重要的进展,包括最近邻算法、决策树、随机森林、深度学习等算法和技术的发展。 机器学习有着广泛的应用场景,如自然语言处理、物体识别和智能驾驶、市场营销和个性化推荐等。通过分析大量的数据,机器学习可以帮助我们更好地理解和解决各种复杂的问题。例如,在自然语言处理领域,机器学习技术可以实现机器翻译、语音识别、文本分类和情感分析等功能;在物体识别和智能驾驶领域,机器学习可以通过训练模型来识别图像和视频中的物体,并实现智能驾驶等功能;在市场营销领域,机器学习可以帮助企业分析用户的购买行为和偏好,提供个性化的产品推荐和定制化的营销策略。 总的来说,机器学习是一个快速发展且充满潜力的领域,它正在不断地改变我们的生活和工作方式。随着技术的不断进步和应用场景的不断扩展,相信机器学习将会在未来发挥更加重要的作用。

    node-v12.6.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    最新UI站长引流工具箱 带后台+安装说明.rar

    最新UI站长引流工具箱 带后台+安装说明.rar最新UI站长引流工具箱 带后台+安装说明.rar最新UI站长引流工具箱 带后台+安装说明.rar

Global site tag (gtag.js) - Google Analytics