问题标签 [application-structure]

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.

0 投票
6 回答
336 浏览

access-modifiers - 访问修饰符...为什么?

好的,所以我只是在想,为什么程序员在谈到OOP中的访问修饰符时会如此紧张。

让我们以这段代码为例/ PHP!

因为 web_address 是私有的,它不能被改变$object->web_address = 'w.e.',但是这个变量只会改变的事实是如果你的程序确实$object->web_address = 'w.e.';

如果在我的应用程序中我希望一个变量不被更改,那么我会制作我的应用程序,以便我的编程没有更改它的代码,因此它永远不会被更改?

所以我的问题是:使用私有/受保护/非公共实体的主要规则和原因是什么

0 投票
4 回答
447 浏览

javascript - 保存或销毁数据/DOM 元素?哪个需要更多资源?

我越来越多地使用 JavaScript/jQuery 进行高级应用程序开发。我一直在尝试更多地了解 JavaScript 语言并深入研究一些更高级的功能。当我阅读这篇文章的这一部分时,我正在阅读一篇关于内存泄漏的文章。

JavaScript是一种垃圾收集语言,这意味着内存在对象创建时分配给对象,并在不再引用它们时由浏览器回收。虽然 JavaScript 的垃圾回收机制没有任何问题,但它与一些浏览器处理 DOM 对象的内存分配和回收的方式不一致。

这让我想起了我的一些编码习惯。一段时间以来,我一直非常专注于尽量减少发送到服务器的请求数量,我觉得这只是一个好习惯。但我想知道有时我是否不会走得太远。我非常不知道JavaScript 语言附带的任何类型的效率问题/瓶颈。

例子

我最近为一家拖车公司构建了一个扣押管理应用程序。我使用了 jQuery UI 对话框小部件,并使用特定的工单数据填充了一个数据网格。现在,这在表面上听起来很简单......但是他们在这里传递了很多数据。

(现在是问题......请打鼓......)

我想知道以下每个选项的优缺点是什么。

1)对给定票证只发出一次请求,并将其永久存储在DOM. 简单地显示/隐藏模式窗口,这意味着每张票只发送一个请求。

2)每次工单打开时发出请求,并在关闭时将其销毁。


我的自然倾向是将门票存储在DOM- 但我担心如果应用程序运行很长时间而不被重置(它将是),这最终会开始占用大量内存。

我真的只是在寻找这两个选项的优点/缺点(或者我什至没有听说过=P的简洁的东西)。

0 投票
5 回答
245 浏览

javascript - JavaScript 文件包含。我不应该链接吗?

我正在看 Douglas Crockfords “ Theory of the DOM ”,他提到我的脚本标签的位置会极大地影响我的应用程序的加载时间。此外,他断言脚本标签应包含在尽可能靠近文档正文的底部。

这是准确的吗?

或者

这个视频过时了吗?(他实际上认为这是他没有早点讲授 DOM 的原因)。

0 投票
5 回答
507 浏览

javascript - 什么时候应该使用自己的命名空间,什么时候应该扩展原生 js 对象?

我正在重构我的代码。我无法决定如何准确地实现我拥有的几个实用功能。 具体来说,如果某些功能在我的个人命名空间中更好,或者直接扩展 js 对象。

扩展原生 JavaScript 对象的示例

(这是正确的术语吗?)。

使用我自己的命名空间的示例

需要考虑的问题

  1. 何时将实用程序合理地插入到原生 JavaScript 对象中?
  2. 如何判断实用程序何时最好位于我自己的命名空间中?
0 投票
3 回答
1216 浏览

php - 初学者 CodeIgniter 概念 - 可重用的视图代码,该去哪里?(帮手?)

我是 CodeIgniter 的初学者,仍在努力完全掌握如何最干净地使用 MVC 意识形态。

我正在编写一个基本的 CMS 系统,该系统能够对条目进行投票和关注人员等,因此,我发现自己在多个视图中使用相同或相似的代码片段,其中包括各种 html 和逻辑片段,例如:

  • 投票小组
  • 关注/取消关注面板
  • 登录/注销面板
  • 检查用户是否登录的代码等...

我想知道将这段代码放在哪里以便统一?我在想一个帮手是要走的路吗?如果我在控制器中声明助手,可以从相应的视图中调用它吗?

一些元素是动态的 - 例如关注/取消关注按钮 - 它需要检查您是否已经关注用户并显示适当的按钮,这需要模型进行检查。我现在拥有的是所有逻辑都在控制器中,它返回一个适当的按钮,但是在控制器返回中返回形成的 html 代码似乎很奇怪。它应该更像:

  • 控制器检查您是否正在关注某人
  • 控制器将布尔值传递给视图
  • 视图用这个值调用助手来绘制相应的按钮

另外,作为第二个问题,我一直在 foreach 循环中对 mysql 数组进行大量循环,以处理从视图返回的 mysql 结果。似乎我的观点变得有些复杂,但是我想不出另一种方法来做到这一点,尽管也许这也应该在另一个助手中完成?

抱歉,如果这是一个幼稚或重复的问题,确实围绕这个主题进行了很多讨论,但它并不总是容易与另一个项目相关联。

0 投票
1 回答
1165 浏览

node.js - node.js 中的应用程序结构?

我熟悉 Java Web 容器,其中 Web 应用程序被部署为war文件。

我很困惑如何在 Node.js 中部署 CSS、JS、HTML、图像(等等)。如何做到这一点?

我对 Node.js 的了解非常有限。提前致谢!

0 投票
2 回答
749 浏览

objective-c - 演示应用程序的 iOS 项目结构

  • 我将构建演示应用程序,它将展示品牌产品。
  • 演示文稿将有多个具有共同背景的幻灯片(状态)。
  • 在某些幻灯片中,我可以返回上一张幻灯片

我的问题:

1. 我必须使用基于视图的应用程序吗?
2.对于每个状态(幻灯片)我应该使用单独的UIViewControllers吗?
3.您建议的演示应用程序的最佳结构是什么?

谢谢!

0 投票
1 回答
333 浏览

php - CakePHP 应用程序结构:一个数据库和应用程序与多个数据库和应用程序

我有一个简短的概念性问题:

最近,我开始开发一个应用程序,我可以在其中(即时)创建客户,而这些客户反过来可以创建具有许多其他内容(自己的登录名等)的项目。

URL 结构是“example.com/client1/project1”,供用户访问他们的项目。到目前为止一切顺利,我用 DB-Model 和路由等管理了这一切。

示例结构:

但是,只有少数客户端(< 15),所以我想知道为每个客户端使用单独的应用程序文件夹和数据库是否更好。因为这样,我还可以分别为每个客户端推出升级。


这是我对此事的初步想法(进行单独安装):

专业版:单独的应用程序

  • Ability to roll-out updates and new features separately for each client (it may well be that some new features are unwelcome by some clients)
  • An error in one DB will only affect one client

Contra: Separate Apps

  • More maintenance work in terms of monitoring all apps & applying updates globally (but given the number of clients this is not really a problem)
  • May become really confusing with different versions etc.
  • No ability to implement a superadmin that can access all apps (needs to be done on app-level)
  • Harder to create shared functionality and data (e.g. billing for clients)
  • Bad practice?

如果我希望合并所有安装,那么这真的不是问题,因为一切都基于 UUID。此外,我仍将实现客户端模型,其余的都依赖于它:这样,只需将数据库和客户端文件组合到一个应用程序安装中(假设每个人都想要相同的功能) .

注意:CakePHP 核心库在任何情况下都会被共享:所以这不是这里的问题。

在这种情况下你会怎么想?我能看到的唯一问题是计费:

但是从每个客户端调用中央数据库让它知道“嘿,我刚刚创建了一些需要计费的东西”,这不是问题。

如果我在单个应用程序中执行此操作 - 如何从某些更新中排除某些客户端?还是我应该简单地强迫每个人习惯任何新功能?

0 投票
1 回答
216 浏览

c++ - 它是正确的 C++ 应用程序结构吗?

我有一个问题是这个正确的应用程序结构?我从 C++ 和 CMake 开始,我想以正确的方式开始。

根\CMakeLists.txt

根\src\CMakeLists.txt

根\src\应用程序

0 投票
3 回答
2831 浏览

javascript - 用于复杂应用程序结构的 NodeJS 本地模块

我目前是使用 JavaScript 构建 Windows 8 应用程序的团队的一员。我们正在使用 npm 和 browserify 来管理依赖项并将我们的模块转换为 AMD 浏览器友好的格式。

我们遇到的一个问题是疯狂的需求路径。这是因为我们的应用程序“组件”中有一个顶级文件夹。此文件夹包含一堆嵌套的 ui 组件/模块。这些模块有时需要 lib utils 和 helpers,它们位于 lib 目录中。

例如,位于“my/app/components/product/grid/item”中的模块可能需要位于“my/app/lib/helpers/view”的帮助模块。

require 路径有点疯狂而且非常丑陋: require("../../../../lib/helpers/view");

我们正在尽最大努力以模块化方式构建应用程序。现在我认为解决这个问题的正确方法是让我们的组件模块依赖于这些 util 辅助模块。我可以将 lib 助手放入他们自己的外部私有 git 存储库中,但这在让其他团队访问方面很痛苦(而且 git 私有存储库很慢)。另外,由于这些模块仅在应用程序中使用,因此进行更改、推送更改、然后返回应用程序和 npm 更新是浪费时间。这对某些人来说很好,但如果我们真的把它分解,它可能会很快变老。

我可以在组件 package.json 中执行 npm install "my/app/lib/helpers/view" 吗?但是 npm install 不会自动为我们执行此操作。

我知道解决这个问题的其他一些方法(NODE_PATH,可能使用 npm install hook 或 npm preinstall script),但想知道是否有其他人有类似的问题和好的解决方案。