Questions tagged «frameworks»

框架是除编程语言和相应编译器之外的一组工具。有时它是强制性的;有时它是可选的,并有助于应用程序的开发。

7
Spring框架做什么?我应该使用它吗?为什么或者为什么不?
因此,我正在用Java启动一个全新的项目,并正在考虑使用Spring。我为什么要考虑春季?因为很多人告诉我我应该使用Spring!认真地说,每当我试图让人们解释Spring到底是什么或做什么时,他们永远无法给我一个直接的答案。我已经在SpringSource网站上查看了这些介绍,它们要么真的很复杂,要么真的是针对教程的,它们都没有给我一个很好的主意,为什么我应该使用它,或者它如何使我的生活更轻松。有时人们会抛出“依赖注入”这个术语,这使我更加困惑,因为我认为我对该术语的含义有不同的理解。 无论如何,这里有一些关于我的背景和我的应用程序的信息: 在Java中开发了一段时间,从事后端Web开发。是的,我进行了大量的单元测试。为了实现这一点,我通常制作(至少)一种方法的两个版本:一个使用实例变量,一个仅使用传递给该方法的变量。使用实例变量的一个调用另一个,提供实例变量。当进行单元测试时,我使用Mockito模拟对象,然后调用不使用实例变量的方法。这就是我一直以来所理解的“依赖注入”。 从CS的角度来看,我的应用程序非常简单。小型项目,需要1-2个开发人员。通常是CRUD类型的操作,并附带大量搜索。基本上是一堆RESTful Web服务,再加上Web前端,最后是一些移动客户端。我正在考虑使用直接的HTML / CSS / JS / JQuery进行前端,因此没有真正的计划使用JSP。使用Hibernate作为ORM,并使用Jersey来实现Web服务。 我已经开始编码,非常渴望在那里获得一个演示,我可以四处逛逛,看看是否有人想投资。因此,显然时间至关重要。我了解到Spring具有相当的学习曲线,而且看起来它需要一堆XML配置,而我通常会尽量避免这种麻烦。但是,如果这可以使我的生活更轻松,并且(尤其是)可以使我的生活和开发速度更快,那么我愿意痛不欲生,学习Spring。 所以,请。教我 我应该使用Spring吗?为什么或者为什么不?

20
“永远不要重新发明轮子”这个短语适合学生吗?
当我对SO提出一些问题时,我发现自己经常遇到“不要重新发明轮子”或“从不重新发明轮子”这样的表达方式。他们告诉您使用某些框架或现有软件包。我知道这种态度是从哪里来的,因为浪费时间在别人已经解决的事情上是不明智的。还是那样? 作为一名学生,我发现通过使用其他人编写的一些代码来解决我的问题,我无法学到很多我想得到的东西,而且我获得的见识也较少。有时我认为这句话主要是针对面临最后期限的在职程序员,而不是像我这样的学生。 “重新发明轮子”不好吗?也许我在想错了吗?也许我可以避免重新发明轮子,同时又学到很多东西?

15
开发人员应如何拒绝不可能的要求?[关闭]
这是我面临的问题: 来自项目经理的报价: 嘿Spark,我正在为您分配开发可用于许多不同iOS应用程序的框架的任务。要求如下: 它应该能够检测用于操纵UI的拇指或手指的粗细。 有了这些信息,UI的所有元素都应该自动排列和调整大小。 对于较大的拇指,应将元素排列在靠近屏幕中心的位置。 对于较小的拇指,应将元素布置在屏幕的角落附近。 对于较大的拇指,所有字体都应较小。(在这种情况下,我们假设是成年人。) 对于较小的拇指,所有字体都应较大。(在这种情况下,我们假设年龄较小。) 摘要: 该框架对于以编程方式创建用户友好的用户界面是必需的。框架的开发方式应使我们可以根据需要用于许多项目,因此它也必须对开发人员非常友好。 我是承担此任务的开发人员,所以我的问题如下: 我怎么能解释这些要求有点荒谬? 我该如何解释,集中精力开发实际项目会更好? 我怎么能解释,即使这是可能的,我也不建议开发这样的东西? 我如何礼貌,温和,礼貌地对这个项目说不? 我如何解释,即使对于具有3年经验的开发人员,这也可能无法实现?

4
遵循SOLID是否会导致在技术堆栈之上编写框架?
我喜欢SOLID,并且在开发时会尽力使用和应用它。但是我不禁感到SOLID方法似乎将您的代码变成了“框架”代码-即,如果您要创建供其他开发人员使用的框架或库,则可以设计代码。 我通常练习两种编程模式-或多或少地准确创建通过需求和KISS(典型编程)提出的要求,或者创建非常通用且可重用的逻辑,服务等,从而提供其他开发人员可能需要的灵活性(框架编程) 。 如果用户确实只希望应用程序执行x和y事情,那么当您甚至都不知道这是否是一个有效的问题时,遵循SOLID并添加一堆抽象入口点是否有意义?与?如果确实添加了这些抽象的入口点,是您真的满足了用户的要求,还是在现有框架和技术堆栈之上创建了一个框架,以使将来的添加变得更加容易?在哪种情况下,您是在为客户或开发人员的利益服务? 这在Java Enterprise世界中似乎很常见,感觉好像您是在J2EE或Spring之上设计自己的框架,以便它对开发人员来说是更好的UX,而不是针对用户的UX?
70 frameworks  solid 

16
程序员在选择语言和框架时应有多少自由度?
我开始在一家主要面向C#的公司工作。我们有些人喜欢Java和JRuby,但是这里的大多数程序员都喜欢C#。我之所以被录用,是因为我有很多构建Web应用程序的经验,并且因为我倾向于JRuby on Rails或nodejs等较新的技术。 我最近开始了一个构建Web应用程序的项目,该项目的重点是在短时间内完成很多工作。软件负责人指示我使用mvc4而不是rails。可能还可以,除了我不知道mvc4,我不懂C#,而且我是唯一负责创建Web应用程序服务器和前端UI的人。 使用我已经非常了解的框架(Rails)而不是使用mvc4有意义吗?该决定背后的原因是,技术负责人不了解Jruby / rails,因此无法重用代码。 相反的论点: 他不会为代码做贡献,坦率地说, 这个项目不需要他。因此,他是否知道JRuby / rails并不重要。 实际上,我们可以重用代码,因为我们有很多Java应用程序,JRuby可以从中提取代码,反之亦然。实际上,他已经投入了一些资源将Java库转换为C#,而不仅仅是在JRuby on Rails应用程序上运行Java库。都是因为他不喜欢Java或JRuby 我已经构建了许多Web应用程序,但是使用一些陌生的东西会引起一些混乱,而我却无法像过去那样在短时间内构建出色的应用程序。这样很好 学习新技术在这一领域很重要。问题是,对于这个项目,我们需要快速完成很多工作。 在什么时候应该允许开发人员选择其工具?这取决于公司吗?我的公司吮吸或认为这正常吗?是否存在绿色牧场?我看错了方向吗?

6
何时不使用框架
如今,人们可以找到一种适用于任何语言的框架,以适应几乎任何项目。大多数现代框架都相当健壮(通常而言),具有逐小时的测试,经过同行评审的代码以及出色的可扩展性。 但是,我认为任何框架都存在一个缺点,即作为一个社区的程序员,可能会过于依赖于他们选择的框架,以致他们不再了解底层的工作原理,或者对于较新的程序员,他们永远也不会学习底层的工作原理。首先。很容易变得专业化,以致于您不再是“ PHP程序员”(例如),而是“ Drupal程序员”,而不会包含其他任何内容。 谁在乎吧?我们有框架!我们不需要知道如何“手工完成”!对? 基本技能丧失的结果(有时,不使用框架的程序员被视为“过时的”)是在不需要或不适当的地方使用框架成为一种常见的做法。框架的功能有助于将结束语与基本语言的能力混淆。开发人员甚至开始使用框架来完成最基本的任务,因此曾经被视为基本过程的现在涉及具有自己的怪癖,错误和依赖关系的大型库。曾经在20行中完成的工作现在通过包含20,000行框架并编写20行以使用该框架来完成。 相反,人们不想重新发明轮子。如果我正在编写代码来完成一些基本的,常见的小任务,当我知道XYZ框架提供了我所追求的所有功能以及更多功能时,我可能会觉得很浪费时间。“更多”部分仍然让我感到担忧,但是似乎没有更多的人考虑它了。 必须有一个好的指标来确定何时使用框架。你有什么考虑的门槛是,如何你决定何时,当不使用框架,或。
38 frameworks 


3
实体框架代码优先在生产中是否毫无意义/无用?什么是生产的良好EF策略?
我最近一直在使用Entity Framework 4.1 Code First进行编程,并且热爱它以进行开发,但是由于只有最终计划和快速变化的功能列表,因此我会不断修改类/数据库以满足应用程序的需求。 在开发中,没有实时数据,我可以轻松地删除整个数据库,以便使用新的架构重新创建它,但是很明显,当实时运行时,这非常糟糕! 我能看到的唯一解决方案是删除元数据表并手动保持数据库同步,或者基本上删除并重新设置种子。 我个人更喜欢第一种方法,因为我认为添加列/表比重新创建和迁移数据要容易得多,但是,除非我错过了什么,否则这将完全远离Code First。 因此,问题实际上是,Code First是否只是关于最初的开发?在生产环境中管理EF的良好策略是什么?

4
如何在给定的MVVM应用程序中选择不使用框架(Caliburn.Micro等)?
我曾经开始一个MVVM / WPF项目,该项目最终得以构建和部署,为此,我研究了很多Caliburn.Micro MVVM框架。事实是:我最终没有为此使用Caliburn.Micro,最终自己实现了一些MVVM概念(特别是ViewModelBaseand RoutedCommand类)。 现在,我按照相同的原则被分配到一个更大的项目:可以说,“单用户富客户端脱机桌面应用程序”,因此我决定使用Caliburn.Micro。这就是我的“问题”开始的地方。 我已经读过一篇著名的博客文章,其标题为“如果您正在使用MVVM,那么您需要一个框架”,即: “在没有框架的情况下尝试进行诸如MVVM之类的工作是一项巨大的工作。大量重复的代码,重新发明轮子,并训练人们以不同的方式思考。 至少在框架下,您可以避免重复的代码,并希望不必重新发明轮子,从而使您可以专注于对人员进行再培训。再培训部分通常是不可避免的,但是框架提供了管道代码和结构,使过程更容易。” 我会同意一读,但是我在Caliburn.Micro(CM)实际应用中的实际经验是无知和迷失方向。也就是说,该框架根本没有使过程变得更容易,相反。阅读由罗布·艾森伯格相当(太)非正式文档中提供不断重复的例子,从旋绕提供的样品试图推断使用模式,他们完全间接的类和接口的关系,这里的东西似乎被设计为工作基础上除非您是一个经验丰富的天才,否则副作用似乎是人类不可能做到的(对不起,这只蚂蚁很抱歉,但我想您知道我的意思)。 更不用说任何上述琐碎的场景似乎都涉及IoC容器,这是我从未使用过的东西,并且似乎解决了我什至没有的问题。我不想花更多的项目时间来学习这些东西,而不必考虑我的问题和应用程序领域。我只想要一个香蕉,但CM给了我一个拿着一篮香蕉的大猩猩(IoC)。 现在,我正在考虑回到我自己家乡的MVVM框架-仅由我实际上要实现的少数特定于MVVM的类组成-我想至少给CM一个机会,以防万一我在这里丢失了一些东西,或者只是出于纯粹的经验和愚昧无知地“错误地”做事。所以问题是: 人们普遍认为“框架使事情变得更加轻松自然”,但是如果碰巧相反,这是否意味着我不应该使用该框架,或者我试图以错误的方式学习它?有没有一个线索,我什至不应该使用框架?还是有一些“正确”的方法来弄清楚如何将CM用于简单的MVVM开发?
28 frameworks  wpf  mvvm 

4
.NET的最佳单元测试框架是什么,为什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 在我看来,每个人都使用NUnit甚至不考虑其他选项。我认为这是因为: 每个人都已经熟悉它,因此他们不必学习新的API。 它已经与他们的持续集成服务器一起设置为可与NUnit一起使用。 我对此有错吗? 我决定最近在自己的一个项目中使用xUnit,我喜欢它!这对我来说意义非凡,从概念上讲,这似乎是NUnit向前迈出的明确一步。 我想听听有关哪个框架实际上是最佳框架的意见-无需考虑必须学习或重新配置自动化测试。

9
对于功能性编程,存在哪些合适的网络框架?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我想使用函数式编程进行一些Web编程。对于功能性编程语言,存在哪些不错的网络框架?

10
根据诺基亚与微软的合作关系,Qt的未来
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 万一您错过了它,最近两天发生了很多事情,可能会影响Qt框架,甚至更糟。:-(肯定会以几种可能尚未得到认可的方式影响移动领域。 从昨天开始,诺基亚首席执行官斯蒂芬·埃洛普(Stephen Elop)在内部致辞中描述了诺基亚正处在燃烧的平台上,并且需要进行大规模而激进的业务转变。 一天后,在诺基亚世界大会上,诺基亚宣布与微软建立合作关系,此刻诺基亚重新采用Windows Phone 7平台和开发环境,将Symbian抛在了身后,并将Meego标记为R&D(你问我),关于Maemo / N900系列,我想这是再见了。我知道您在想什么,但是不,Qt 不会移植到Window Phone平台。而我也吓得关于这个。您可以在此处观看Elop&Ballmer联合新闻稿。 现在,看完之后这个庞大的线程 Qt的利益邮件列表我不禁纳闷时,在什么Qt是Qt的在诺基亚未来,现在他们不关注(所有?)了(还记得满焦点早在10月就将Qt用作所有诺基亚产品(包括Symbian,是的)的主要开发框架? 我爱Qt,在我看来,它是唯一真正的跨平台应用程序开发框架,并且是使C ++开发(在可能的范围内)变得令​​人愉悦的少数几个框架,并且在诺基亚统治下,该框架发生了很多事,并且发展势头良好,因此,我想知道,此后Qt在诺基亚遭受缓慢死亡的机会是什么?是的,我知道KDE.org和Qt很容易产生的事实,但我仍然感到不安。 对于诺基亚员工或第三方参与Symbian以及Ovi商店中所有Symbian / Qt内容和业务的所有努力,而且对于Maemo / Meego为何如此,这也必须是可怕的。我还计划进行大规模裁员,我怀疑Symbian技术人员和Qt? 我想听听您的意见吗?Qt未来安全可靠吗? LE:这个问题已被逐步修订,改进和更好地引用,因此您可能希望快速阅读一遍,以了解您可能错过的内容。

9
依赖注入:我应该使用框架吗?
我最近在一个Python项目中工作,我们在其中进行了大量依赖注入(因为必须使该应用程序可测试),但是我们没有使用任何框架。有时手动连接所有依赖项可能有点乏味,但总体来说效果很好。 当必须在多个位置创建对象时,我们只需一个函数(有时是该对象的类方法)即可创建生产实例。每当我们需要该对象时,都会调用此函数。 在测试中,我们做同样的事情:如果多次需要创建对象的“测试版本”(即由模拟对象支持的真实实例),我们就有一个函数来创建此“测试版本”类,用于测试。 就像我说的那样,总体来说效果很好。 我现在正在进入一个新的Java项目,并且我们正在决定是使用DI框架还是手动进行DI(例如上一个项目)。 请说明使用DI框架的工作方式会有所不同,以及以什么方式比手动“原始”依赖项注入更好或更坏。 编辑:我也想补充一个问题:您是否亲眼目睹了没有框架的手动执行DI的任何“专业级”项目?

8
框架是否放置过多抽象?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我已经进行了不到一年的编程,并且在编写系统应用程序,Web应用程序和用于企业/组织的脚本方面有一些经验。但是,我从未真正完成的一件事是使用Django,Rails或Zend之类的框架。 回顾Django框架,我对框架中提取了多少东西感到沮丧。我了解DRY和最少的代码的核心目标,但是对不同模块的过度依赖以及对核心功能的过度抽象有些感觉是这样的: 由于模块/框架的不断变化的性质,使得程序的过时速度非常快, 由于存在大量可用的框架和模块及其所有特质,使得代码难以理解, 除非您已阅读所有文档,否则使代码的逻辑性降低。也就是说,我可以通读一些列表理解和条件逻辑,弄清楚程序在做什么,但是当您看到需要传入任意字符串和字典的函数时,除非您已经是一位高手,否则事情会变得有些难以理解。给定的模块;和: 使得在框架之间进行切换既困难又乏味。在语言之间进行切换已经是一个挑战,但是如果您对语言的核心功能/理念有足够的了解,这是可以管理的。框架之间的切换似乎更多是死记硬背的问题,从某些方面看,这似乎鼓励了这些框架旨在消除的低效率。 我们真的需要在像MySQL查询这样简单的内容上放置50层抽象吗?为什么不使用类似PHP的PDO接口那样的功能,在该接口中可以处理准备好的语句/输入测试,但是通用的SQL查询仍然是该功能的一部分? 这些抽象真的有用吗?功能膨胀是否会使它们无用,从而使应用程序比没有使用框架编写的类似应用程序更加困难?

2
内部使用网站:是否有针对SQLite的令人信服的案例?
许多Web框架(例如Flask或Django)都使用SQLite作为其默认数据库。 SQLite之所以引人注目,是因为它包含在python中,并且管理开销非常低。 但是,大多数高流量的公共生产站点最终都使用更重的数据库:mySQL,Oracle或postgresql。 问题: 假设: 站点流量适中,并且将同时进行对数据库的读/写访问 我们将结合使用SQLAlchemy和SQLite写锁(尽管此注释使我有些紧张) 该数据库可能包含60,000条记录 数据结构不需要在较重的数据库中发现的高级功能 对于作为中等流量内部公司工具的网站,是否存在令人信服的反对SQLite并发的案例?如果是这样,什么条件将导致SQLite出现并发问题? 我正在寻找已知的特定根本原因,而不是普遍的恐惧/未经证实的指责。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.