问题标签 [abstraction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
abstraction - 如果数据由 1 个应用程序使用,则使用数据库表而不是硬编码简单的数据列表的好处
一段时间以来,许多人告诉我,美国各州(和地区)的列表应该存储在数据库表中,并为使用该信息的应用程序缓存。他们给我的唯一原因是促进正常化,因为“这是我们一直这样做的方式”。
现在,如果由于应用程序的范围在国际范围内扩大(比如说包括加拿大各省)而经常更改列表,我可以理解将列表抽象为一个数据表,该数据表也将指示国家标识符。但是,如果列表几乎被锁定并且仅在应用程序的 1 个屏幕上使用,是否值得进行查询和缓存?存储 SMALLINT 外键是否比 CHAR(2) 好得多?它总是实用的吗?
只是在思考我在与我合作过的公司中看到的这种趋势。
.net - HTML的.NET反射/抽象?
我很好奇是否有可能拥有一个提供完整的 HTML 抽象(也许还有 CSS 样式)的 .NET 类库。
每种 HTML 元素都会有一个 .NET 类,甚至是抽象类(例如,抽象基类 'List',它扩展了 'OrderedList' 和 'UnorderedList')。
然后可以通过在每个元素实例上递归调用“Render”或类似的东西,将元素添加到树结构并呈现为完整的 HTML 页面,包括样式。
我可以想象这样一个库可能有用的许多方面:
构建跨浏览器渲染问题的框架意识,甚至是多设备/屏幕尺寸支持。然后有可能构建一个网页,并立即使其与所有主要浏览器一起工作。
使用反射构建具有极好的 IntelliSense 等的 HTML 编辑器。编辑器还可以具有 WYSIWIG 模式,允许动态重新排列元素,而不会生成格式错误的标记。
对网站的 SEO、合规性、可访问性等进行一些非常强大的审计。
执行非常精细的智能缓存,直至元素级别。
是否已经考虑或尝试过类似的事情?
(注意:我意识到 ASP.NET 在其“HtmlControls”命名空间下有类似的东西,但它并不代表所有 HTML 元素,而且它包含的元素的建模不够准确。另外, ASP.NET webforms 上的 HTML 元素被视为文本文件并在运行时解析,而不是被编译为强类型类。)
(另一个说明:我认为Google Web Toolkit与这个想法有一些相似之处,尽管它是用 Java 编写的,并且更多地针对 Ajax/Javascript/DOM,而不是基于标准的 XHTML、CSS 和 Javascript)
ruby - 抽象初始化属性的最佳方法
抽象这种模式的最佳方法是什么:
一个好的解决方案应该考虑超类并且能够处理仍然能够拥有一个初始化器来做更多的事情。在您的解决方案中不牺牲性能的额外积分。
ruby-on-rails - 你将如何隐藏特定的 ORM 实现:class Project < ActiveRecord::Base
假设我有一个名为 Project 的模型类,但不是这样:
我想写这个:
以便我的模型类中不存在特定的 ORM 实现。
我需要如何编写我的 ORM 类,以便上面的 Project 类能够充当它的子类,ActiveRecord::Base
但无需专门对其进行子类化?
我会简单地说:
然后 Project 将是一个子类,ActiveRecord::Base
就像我写的一样:
model-view-controller - 从管理层中的 MVC 路由生成 url...
所以...我有一个将生成电子邮件的业务对象/经理。
这些电子邮件将包含指向网站上各种内容的链接……因此需要了解 MVC 路由……或者至少要了解如何为网站生成 URL……
但是,我的业务对象将无法访问 RequestContext 等,并且电子邮件生成不一定是对网站的 Web 请求的结果(我有一个调度程序,它在将生成电子邮件的后台线程上运行)
任何想法如何在无法访问请求的情况下生成我的网址 - 因此无法使用 URLHelper ...
想法?
language-agnostic - 异常和抽象
什么时候应该抛出自定义异常?
例如,我有一些连接到服务器的代码。连接到服务器的代码在连接失败时会抛出 IOException。在它被调用的方法的上下文中,这很好。在网络代码中也很好。
但是由于这表示没有连接(因此无法正常工作),所以异常一直到 ui。在这个阶段,一个 IOException 是非常模棱两可的。像 NoConnectionException 这样的东西会更好。
所以,我的问题是:你应该在什么阶段捕获一个异常,而不是抛出另一个更适合抽象的(自定义)异常?
javascript - 如何减少 jQuery 代码中的冗余?
我的 JavaScript 文件的大小变得失控,因为我有数百个链接,每个链接都有自己的 jQuery 函数,尽管它们都执行基本相同的任务。
这是一个简短的摘录:
有没有办法抽象出一些这种逻辑,这样我就只有一个函数,而不是数百个做同样事情的函数?
programming-languages - 未来的编程语言如何更好地促进抽象?
设计可理解的软件(实际上,设计任何东西)的关键属性之一是开发一组好的抽象。如今,这些抽象包括函数、类、接口、递归和高阶函数等。但还有什么?我们如何进一步抽象我们的设计,这样我就不需要考虑我直接的直接目标了?现有技术尚未利用哪些新颖的抽象?
另请注意,我列表中的大多数项目(也许递归除外)也是用于代码重用的工具。代码重用不是这个问题的主题,也不是我认为好的抽象的必要方面。函数作为抽象很有用,因为它们将它们正在做的事情隐藏在一个描述性的名称后面,而不是因为我可以从几个不同的地方调用它们。
一个糟糕的想法:一个只调用一系列其他函数的驱动函数,不维护自己的任何状态,真的和函数一样吗?我们把它写成一个函数,把它称为一个函数,但也许它代表了一个不同的概念?这在某些语言中通过区分返回值的过程和不返回值的过程来反映。但也许有更好的方式来看待这种差异,一些不同的方式来抽象相对不相关的步骤序列?
所以重申一下,未来的编程语言如何更好地促进抽象?
java - 定义抽象对象的实现
我正在寻找一种方法来执行以下操作:
一个项目:定义一个在某些事件发生时调用的抽象类(如果你愿意,事件处理程序)定义将使用上面的事件处理程序触发事件的引擎
B 项目:定义抽象类运行引擎的实现。
我如何注册实现类并确保它是引擎运行时被调用的类。
编辑1:通过注册我的意思是我必须以某种方式定义应该为给定的抽象对象调用哪个实现
抱歉,如果问题不太清楚,如果您需要更多详细信息,请告诉我
java - Java 扩展/抽象/实现问题
我有三个班级(A级,B级和C级)。
A 类调用 B 的一个实例并运行 start()。
B 类扩展了 Thread,所以当 start() 被调用时,run() 方法中的任何东西都会被执行。
在 run() 线程中,有一个 C 类的实例。
无论如何,是否允许 C 类中的方法调用 A 类中的方法,而不实例化 A 类的新实例?
由于我不能将 A 类扩展到 B 类(因为“线程”已经被扩展),我不知道该怎么做。
抱歉含糊不清,但我的项目包含太多代码,而且太复杂,无法提供直接的代码示例。
谢谢!