问题标签 [conceptual]
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.
php - 自定义 php 模板引擎:我终于走上正轨了吗?
由于我一直迟到回答标记为 php 的问题,我实际上知道答案,我想我会尝试自己问一个问题。
长期以来,我一直在对 php 中的自定义模板引擎进行如此多的完整重写,以至于我想征求意见。
简而言之,这是我迄今为止实现的最重要的部分:
- 任何 http 请求都会被路由到 handler.php
- 根据请求的 URL 实例化控制器并调用该控制器上的方法。
- 控制器方法必须返回一个
IView
兼容的类实例(IView
定义一个Render()
方法)- 模板引擎为每个以“服务器端”结尾的命名空间执行一些 xpath
sprintf('//%s:*[@runat="server"]', $namespaceprefix )
- 对于每个找到的标签,它都会查找由标识的 php 类
$tag.localName
并实例化一个并将其附加到原始模板。 - 附加后,原始模板节点将被馈送到“ServerTag”,以便它可以正确初始化
- 完全完整的 IView 兼容实例被分配给控制器方法中的临时变量。
- 模板引擎为每个以“服务器端”结尾的命名空间执行一些 xpath
- 控制器要求将数据从 Model 类推送到执行一些漂亮的 xpath DOM 替换的视图。
- 控制器将完全填充的视图返回给
main()
处理程序,处理程序呈现它。
我的模板基于 xml。一个简单的模板目前看起来像:
目前,此输出(包括损坏的缩进):
- 我在这里只触及了冰山一角,是的,一旦我对功能感到满意,我将从输出中删除未使用的 xmlns 属性
- 我的 mvc 和核心框架中目前只有 200 多个类
- 我知道现有的解决方案可以做类似的事情,但我想建立自己的。
所以最大的问题是:你对必备功能有什么意见吗?
PS如果有人对完整的源代码感兴趣,请发表评论,当我达到合理的开发人员可用性水平时,我将在我的网站上提供它。
apache-flex - 概念问题:松散耦合
我正在构建一个图形板,例如我面临设计问题的项目。
Main Class 是 Board,它是一个画布,负责在绘制形状时处理鼠标事件。它还具有上下文变量,例如 currentShape 或 snapFlag 来激活网格磁性。
为了处理形状的移动/调整大小/旋转,它们继承自名为 ObjectHandles (flex) 的第三方开源工具。
我有一个 baseShape 扩展 ObjectHandles 主类来覆盖它的一些内部函数,比如 onMove 函数。
当创建一个形状(鼠标向下、移动、鼠标向上)时,这是由 Board 处理的,它知道他自己的 snap 标志。
var mouseUpPoint:Point = boardCanvas.globalToLocal(new Point(event.stageX, event.stageY)); var snapMouseUpPoint = snapPoint(mouseUpPoint.x, mouseUpPoint.y);
在我覆盖的 onMove 方法中,我希望形状能够了解 Board snap 标志及其变化时间。我该怎么做呢 ?
我是否在我的 basicShape 构造函数中将 Board 作为参数传递,以便我可以检查 snap ?
我是否将标志作为参数传递并以某种方式使所有形状都监听变化?
什么是最干净的解决方案?
非常感谢。
inheritance - 面向对象语言中的继承概念
我正在和我的一个朋友讨论多重继承与单继承,并发现很明显,我对面向对象设计的概念与他的完全不同。我主要是一名 Obj-C 程序员,所以多重继承并不是我每天都在使用的东西。他主要是 Windows/PSP 下的 C++ 程序员,所以我们可能每天使用不同的概念。
他实际上带来了以下主题:新人类继承了什么?
我的想法是会有一个 Human 类,而新的存在将从该类继承并从他的两个父母那里获得一些实例变量(例如他的 DNA 和其他人)。
他的想法是,孩子会继承他的两个父母,以获得他父母的方法。
现在我有点困惑,因为老实说......从对象继承?继承不是用来从包含特定对象组通用方法的类继承的吗?这个论点真让我困惑不已。
opengl - 在 OpenGL 中管理大量线条的最有效方法是什么?
我正在开发一个简单的 CAD 程序,它使用 OpenGL 来处理屏幕渲染。屏幕上绘制的每个形状都完全由简单的线段构成,因此即使是简单的绘图也最终会处理数千条单独的线。
在我的应用程序和 OpenGL 之间传达此行集合中的更改的最佳方式是什么?有没有办法只更新 OpenGL 缓冲区中行的某个子集?
我在这里寻找一个概念性的答案。无需深入实际的源代码,只需对数据结构和通信提出一些建议。
objective-c - Objective-C 消息传递,巧妙处理未知消息
有没有办法做类似于 KVC 的事情,但使用消息名称作为密钥本身?例如,valueForKey:
有没有办法让对象响应所有消息?
例如,假设您有一个 XML 文档:
除了使用已经可用的 NSXMLDocument 和 co. 之外,是否还有一种方法可以实现某种抽象,以便您可以这样做:
我选择 XML 只是作为示例,但我想知道这是否可能,以及它是否涉及过于接近 Objective-C 运行时或者它是否被运行时本身支持,以及我将如何进行关于实施这样的事情。这纯粹是出于实验目的,我知道可能会有很大的性能成本。
编辑:
如果可能的话,我想避免使用现有的框架,如 Cocoa 并使用基本的 Objective-C object Object
。
wpf - 为什么要在 XAML Window.Loaded 调用的方法中运行代码?
我看到了一个代码示例,它创建了一个Window_Loaded()
由 XAML 的“加载窗口”事件调用的方法:
但在后面的代码中,代码在构造函数和Window_Loaded()
方法中都有效:
这样做有什么好处吗?
是否有像 ASP.NET 中那样的“窗口加载周期”,这有助于了解,例如PreRender()
,PostRender()
等方法?
wpf - 您在 MVVM 中绑定 DataContext 的策略是什么?
这两个 1 小时的视频分步展示了如何使用 MVVM 模式在 Silverlight 和 WPF 中构建简单的测验应用程序:
令我惊讶的是它们在结构上的不同之处,例如,它们如何使用 DataBinding:
在 Silverlight 方法中,我们将View的 DataContext 设置为ViewModel中的ObservableCollection:
在 WPF 方法中,我们将Window的 DataContext 设置为ViewModel本身。
似乎我看到的每个 MVVM 示例都以稍微新的变体进行 DataContext 绑定,我试图确定一些坚实的基础,即“如何在 MVVM 模式中完成 DataContext 绑定”。
当您决定将 DataContext 绑定到某个东西时,您会想到什么:为什么要将Window / View / ListBox / 等的 DataContext 绑定到ObservableCollection / ModelView / 等?这里有什么优点、缺点和策略?
任何输入表示赞赏。
java - 对象是否封装了数据,即使是同一类的其他实例也不能访问数据?
在 Java 中,
对象是否封装了数据,即使是同一类的其他实例也不能访问数据?仅在使用关键字“private”时?Java 中的“访问器方法”是什么 - 像 getName() 这样的方法?
谢谢
wpf - 如何将我的 RoutedCommand 处理程序从 View-codebehind 移动到 ViewModel?
以下 RoutedCommand 示例有效。
但是,执行命令的按钮的处理是在 view 的代码隐藏中。我理解 MVVM 的方式,它应该在 ViewModel 中。
但是,当我将该方法移动到 ViewModel(并将其更改为 public)时,我收到错误“ ManagedCustomersView 不包含 OnSave 的定义”。即使我将 RoutedCommand 第二个参数更改为 typeof(ManageCustomersViewModel),我也会收到相同的错误。
如何将命令处理程序从 View-codebehind 移动到 ViewModel?
ManageCustomersView.xaml:
ManageCustomersView.xaml.cs:
命令.cs:
entity-framework - 区分存储模型和概念模型字段名称(实体框架)
我遇到的每个示例都具有存储模型中的实体和属性,其名称与概念模型中的名称完全相同。所以在映射部分,我无法判断一个实体或属性是来自存储模型还是概念模型。
这是一个实体框架图的片段。哪些“ID”字段来自数据库,哪些来自实体?