问题标签 [code-separation]

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 投票
3 回答
118 浏览

html - 我应该如何严格地将样式与 html 代码分开?

在干净的 html 代码和干净的 css 代码之间进行优先级排序的最常见或公认的方法是什么?

在我看来,有两种可能的方法……</p>

您可以使用与样式相关的最少标记来获取 html 代码。不利的一面是,当您为不同的对象添加类似的样式(在这种方法中缺少合适的类)时,css 往往有点混乱,而且可能有点多余。

另一种方法会产生更清晰的 css 代码,您可以在其中为不同样式预定义类,例如 w3.css 或 bootstrap。这一次的缺点是你最终可能会得到一个严重依赖标签的类属性的 html 代码,有时是几个类的组合;这意味着 html 标记并没有真正与样式分离。

我意识到没有明确的答案,两个选项之间的界限是浮动的。但是,鉴于您没有使用任何预编译框架,首选方法是什么?

编辑:问题不在于内联 CSS。它是关于如何考虑使用预定义的 css 类。例如……如果您向某些 div 添加一个类似于“w3-panel”的类,那么您实际上在 html 代码中添加了一些边距。如果您使用选择器专门针对这些 div,则可以使 html 没有样式。

前者产生更干净的 css 代码,后者产生更干净的 html 代码。在不实现框架时(强制您通过向 html 添加类来设置样式),哪条路线是最被接受的路线?

0 投票
1 回答
583 浏览

c++ - How to use forward declaration with boost::msm to avoid circular dependency?

I am trying to implement a simple protocol with boost::msm. As packets arrive they are processed and dispatched to the State Machine (SM) to be handled accordingly.

My pkt class (i.e. Pkt1) requires a handle to the fsm that would allow it to call fsm->process_event(...) (and of course i would add #include "myfsm.h" to the top of the pkt1.h).

So far so good. But what if my state machine (say State1) requires to react to that packet by sending a packet itself? Now I would include the "pkt1.h" header to the top of the "state1.h" so i could create an instance of the Pkt1 and call its send() function.

Well as you might guess this final inclusion leads to a "circular dependency"

The sample code (with the error) can be found : https://wandbox.org/permlink/IlFsUQyLPLrLl2RW (its my first time using wandbox, hope everything is OK)

Note) In the "state1.h" file remove the #include "pkt1.h" & on_entry(..)... Pkt1 pkt; pkt.send(); to make it compilable.

Questions:

1) How should I resolve this circular dependency?

2) I think the way forward would be to add an implementation file (.cpp) for my Pkt1 class and transfer the #include "myfsm.h" to this file, thus breaking the circular dependency. But how can I forward declare the MyFsm in the header file?

3) I am new to boost::msm/CRTP and the code is confusing to me. How can State1 get access to MyFsm while I have not included the corresponding header to state1.h?? (maybe because MyFsm derives from the functor front/back end which its header is included and allows virtual functions to call the corresponding MyFsm functions!!??)

Many thanks for your time and help in advance.

Code Included:

  • events.h

    /li>
  • main.cpp

    /li>
  • myfsm.h

    /li>
  • pkt1.h

    /li>
  • state1.h

    /li>
  • state2.h

    /li>
0 投票
1 回答
31 浏览

git - 如何在不冒两个项目相互偏离的风险的情况下分离公共/私有代码?

我们有一个内部项目,例如,一个身份验证后端。这个后端的代码完全是为我们公司的需要定制的。但是,我们正在将我们的项目作为开源项目发布。为此,我们创建了一个新的身份验证后端,它使用标准和开放的软件。所以我们可以用新的后端公开发布,并为我们保留另一个。

现在的问题:

我们希望拥有没有自定义内部代码的公共 git 存储库。如何分离公共/私有代码而不冒最终导致两个项目相互偏离的风险?

很多选择在我们看来都有一些利弊,所以我们来这里看看是否有人已经遇到这种情况或有什么建议?

0 投票
2 回答
265 浏览

angular - 放置 websocket 连接器的最佳位置。角

我有一个私人 websocket,这个 websocket 给我带来了关于用户的信息,比如余额、通知和其他东西。所有应用程序都需要使用这个 websocket。我有一个组件,我在这个 websocket 中连接,我创建了一个发射器,以便在收到新消息时进行广播。示例:websocket 组件接收消息并向组件 x 发送事件。

这是实现这一点的最佳方法吗?

我正在使用 Angular 6 来构建这个应用程序。

0 投票
1 回答
328 浏览

c# - 将 Unity C# 代码与“普通”C# 代码分离

我曾考虑将 Unity C# 代码(我只能与 UnityEngine 一起使用的代码)与“普通”C# 代码(int x = 3; bool isKnockMeDead = true; void KnockMeDead();等)分开。

为什么?这样我就可以(例如)从 Unity 切换到 Wpf,而无需重写整个逻辑。所以我的 EngineObject 是 Window 而不是 MonoBehviour ......

对于这个问题,我已经有了一些解决方案:

但我对其中任何一个都不是100%满意,因为...

第一个解决方案 - InheritanceSolution.cs

这是执行此操作的最快方法,但您没有 100% 的视觉分离,并且还给出了在 Child 类中使用 Unity Code 的危险。

第二个解决方案 - PartialSolution.cs

如果几个人想要在一个类上工作而不被打扰和/或如果自动生成的代码应该与用户分开,则实际使用该关键字。

我只是用它来分隔代码,这可以,但它不应该用来说每个类都有200行,因为它在编译时只是保留一个类。

还有问题:/

视觉分离将是完美的,但实现中没有任何变化,我仍然可以在两个(一个)类中使用 Unity 代码。

第三个解决方案 - InterfaceSolution.cs

(Ey Max 请将 GameController 类(大项目)分开...

呃……得跑了

解决方案其实是完美的,但是付出的努力是相当大的!

我的问题:

  1. 甚至有必要吗?如果是,什么时候?

  2. 您认为这三个中哪一个是最好的?

  3. 有更好的吗?

总而言之,我只是想从 Unity 中独立一点,但我不想马上编写新引擎。

你可以留给我最终如何设计它。(MVVM、MVC 等):)

我期待着你的回答。请成为我的英雄!

0 投票
1 回答
18 浏览

python - (Python) 打印时分隔列表

我正在为学校编写代码,我们需要制作一副卡片作为其中的一部分。我已经制作了甲板,但我不知道如何按我想要的方式打印它。它要么打印所有括号和逗号,要么不打印。我的目标是用逗号分隔列表的每两个值来打印它。有什么建议么?

0 投票
2 回答
76 浏览

html - 如何将这些 SVG 属性转换为 CSS 声明?

我有以下 HTML:

HTML 充其量看起来很笨重,我如何将它的属性转换为 CSS?

例如:

我知道width,heightfill属性存在并且可以转换成 CSS。

但是我不知道其他属性是如何工作的或者它们的 CSS 等效项是什么,并且在caniuse上快速搜索不会产生以 . 开头的 CSS 属性的结果stroke

谢谢你。

0 投票
1 回答
96 浏览

swift - Swift 中单独类中的位置管理器

所以我目前正在做一些项目,我遇到了这个问题。如果我在 ViewController 中使用 CLLocationDelegate,它会正常运行,但是当我尝试将它分离到它自己的类中时,它就不起作用了。当我尝试运行它时,它不会运行下面的功能。任何建议表示赞赏:)

视图控制器:

位置管理器类:

0 投票
1 回答
196 浏览

node.js - 在 Node 和 Express 中分离套接字 IO 需要更简洁的代码

所以,我正在制作一个应用程序,并且我已经让套接字 IO 工作,并且该应用程序只是在 Express 上运行。

无论如何,在主服务器文件中是我打电话的地方。一些例子:

显然,对各种对象有更多的 socket.on 调用。我想要做的实际上是将这些对象的逻辑从主循环中分离到一些单独的文件中,以更好地清理我拥有的主 server.js 文件。我有大约 300 行各种套接字调用。

对象 1 的 socketCalls1.js 之类的东西,等等。

唯一的问题是 io 变量似乎不能在多个文件之间共享......有没有一种好的、干净的方法来做到这一点?

0 投票
1 回答
61 浏览

swiftui - SwiftUI:不同视图之间的数据共享

在视图之间共享变量的最佳做法是什么?我的应用程序只有一个视图。但是随着它变得越来越复杂,我认为我应该将它分成几个视图。还要分开方法。我从这样的事情开始:

并想去那里:

我尝试使用@Published、@ObservedObject 和@Binding。但不明白。感谢您提前提供任何指示。