Argo是开源的web框架,目前Argo支撑着58同城几乎所有的web站点,包括wap和手机端的访问等,现在wf每天处理10亿级的请求。经过长时间的运作与运行,证明Argo是一个可靠的、高效的web框架。
Argo在wf做了大量优化和重构,以适应各组织软件开发的个性化需求,提升了系统性能,具有更好的可扩展性。Argo的开源反过来也促进wf2.0的开发。
约定优于配置,减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。Argo体系中有且只有一个组织级约定,规定包的命名,配置文件路径,日志文件路径等。组织的约定是不容侵犯,每个项目在组织级约定下工作。组织级约定建议以jar形式下发给各项目。
简单,Argo可以不需要任何配置文件,项目代码结构简单,易于维护。
纪律,包和类的命名都受组织级约定的控制,任何违反约定的行为可能导致系统无法正常运行。
SEO友好的URL结构,Argo天然支持RESTful的url结构,并能自动匹配合适的参数;
零配置,甚至你不要web.xml就能在tomcat上运行;
插拔式组件架构,可以灵活扩张功能;
高安全性,提供集群模式下,避免ip欺骗等功能。
Argo不是一个通用的web框架,一个问题解决方案可能有很多,但在Argo中只提供一种解决方案。Argo在以下约定中工作:
servlet 3.0环境,主要针对Tomcat 7.x;
基于guice的Ioc,组织和项目可以各提供一个module注入模块,而且module的命名必须符合约定;
maven依赖,项目的代码体系和maven默认代码体系一致,maven以插件提供开发过程中所需要的开发运行环境(jetty:run或tomcat7:run)。
在Argo中用到了Google-guice依赖注入框架:http://code.google.com/p/google-guice/ Google-guice 依赖注入框架主要由@Inject注解、AbstractModule基类组成 //google code上的例子 RealBillingService类构造时依赖CreditCardProcessor和TransactionLog接口,添
58同城开源的轻量级web框架 https://github.com/58code/Argo 随着公司规模的不断扩大,项目越来越多了,单个项目投入的人也多了起来,每个程序员都有自己的一套编码风格。身为一个处女座程序员,深深感觉到无法忍受一团乱麻似的工程。于是就需要一套强有力的规范,而且规范最好能够分级,最低层的规范最为严格,导致大家写出的代码都能差不多,也就减少人员交叉过渡的成本,越靠近业务顶
58同城开源的轻量级web框架 https://github.com/58code/Argo 有人说,为了这么一个小框架,花费这么长时间阅读,还分成这么多篇博客,小题大做。 仁者见仁智者见智吧,大家在学习过程中都有自己的一套方式方法,适合自己的就是最高效的。框架工具无分大与小、好与坏,人家花了大量时间琢磨研究这样一个框架,并且大范围运用起来,肯定是有道理的,至于能吃得多透,还得结合各自的实际经
58同城开源的轻量级web框架 https://github.com/58code/Argo 今天开头说说抽象,面向对象的特点:抽象、继承、多态,好的设计都是基于优秀的抽象,抽象层次越高、越完善,他的扩展性就越好,也越容易理解。好比居家过日子,多多少少需要一些工具,可切割的、可裁剪的,这就是两个interface,于是我们准备了刀和剪子,就是一种实现。再后有了水果刀和切菜刀、园艺剪子和裁衣服剪
58同城开源的轻量级web框架 https://github.com/58code/Argo 前面简单的写了点关于Argo使用的基本方法和Demo示例,其实只要前后看两遍,是很容易上手的。更多的人还是关注为什么要做这样一个框架,以及他是否能为开发人员解决常见问题,提高工作效率。 对比Struts、Webwork、springMVC,他们提供的功能实在太多了。Struts1当前应用最广,现在还有
近日,@58同城开源 微博称,58同城轻量级Web框架Argo正式开源。目前Argo支撑着58同城几乎所有的Web站点,包括Wap和手机端的访问等,现在Argo每天处理10亿级的请求。经过长时间的运作与运行,证明Argo是一个可靠、高效的Web框架。 Argo在GitHub上的地址:https://github.com/58code/Argo,Argo是希腊神话中的一艘船,58所有开源项目都将采用
本章重点介绍Web框架及其部署。 PyCharm具有部署代码和文件的简单功能。 要使用PyCharm部署代码,我们需要添加一个带有菜单选项Settings -》 Build, Execution-》 Deployment的Web服务器。 现在,包括部署项目所需的各种配置的所有设置。 在Mappings选项卡中,用户可以指定本地代码的位置以及远程复制到何处。 可以使用Tools -》 Deploym
同城 运营岗 一面(业务面)面试时长:20分钟 1.自我介绍 2.实习经历深挖 3.酒店的活动策划思路? 4.你的简历里面写你熟悉抖音快手的段子,有什么网络热点这段时间? 5.你了解电商平台的运营模式吗?是怎么样的 6.目前手上有几个offer?预期的薪资是多少? 反问: 1.具体的工作内容 2.该岗位候选人应该具备什么样的能力? 二面(业务面)面试时长:25分钟 1.自我介绍 2.策划一个与节日
10.18 一面 只记得这些了 大文件切片上传我会怎么做 切片的大小怎么设置 服务端怎么检验 每一个切片里都包含什么,id,md5? 断点续传 服务器怎么区分切片上传上来的文件 除了MD5,你觉得还有什么能作为文件的唯一值呢?路径+名字? bind 多个bind链式调用的话,此时this指向谁? 10.23 二面 纯项目 介绍项目 参考了什么组件库 eslint代码配置 怎么用less管理的样式
已凉┭┮﹏┭┮ 一、首先夸夸58真的很尊重应聘人员 HR提前一天电话联系询问是否有时间 确定有时间后发正式约面邮件 面试前会有邮件和短信提醒 二、面试内容 应聘岗位:算法工程师 面试时长:30min 问题: 自我介绍 介绍一下项目使用的模型 上过什么课程 进程和线程的差别 对数据结构的了解,有什么排序算法,快排的时间复杂度和空间复杂度 梯度消失和梯度爆炸 有什么损失函数 了解什么传统机器学习算法
5.14一面 40min 0.面试官介绍部门和业务,让我放轻松 1.java内存介绍一下(讲了jmm和jvm,还有cpu多级缓存机制) 2.单例模式的实现方式介绍一下(饿汉,懒汉,双重检测锁,枚举类,静态内部类) 3.聚簇索引和非聚簇索引,b+树,b树 4.快速排序复杂度为什么是nlogn 5.什么场景下你会用redis 手撕10min lc22 括号生成(以前没做过,现场想到用回溯写出来了,竟然
tornado.web — RequestHandler and Application classes Thread-safety notes Request handlers Entry points Input Output Cookies Other Application configuration Decorators Everything else tornado.template
本章重点介绍Web框架及其部署。 PyCharm具有部署代码和文件的简单功能。 要使用PyCharm部署代码,我们需要添加一个带有菜单选项:Settings -> Build, Execution -> Deployment 来部署Web服务器。 现在,包含部署项目所需的各种配置的所有设置。 在Mappings 选项卡中,用户可以指定本地代码的位置以及它应该远程复制到的位置。 代码可以使用工具菜单
第一题 第二题 第三题 #校招##笔试##58集团##58同城##java#