小编jco*_*lum的帖子

一般来说,数据库中的每个表都应该有一个身份字段用作PK吗?

即使我问它,这似乎是重复,但我搜索并没有找到它.对于SO来说这似乎是一个很好的问题 - 即使我确信我可以在许多博客上找到它等等.因此,博客上的辩论可能会比您在博客上引起的争论更多.

我遇到了一个连接问题:收回太多记录.我认为这是"扩张".我在连接集中添加了一个表,并且扩展的行数太多了.通常在发生这种情况时,我会添加一个选择连接中涉及的所有ID字段.这样,扩展正在发生的地方非常明显,我可以更改连接的ON来修复它.除了这种情况,我添加的表没有ID字段.对我来说,这是一个问题.但也许我错了.

问题:数据库中的每个表都应该有一个用作PK的IDENTITY字段吗?在每个表中都有ID字段有什么缺点吗?如果你有理由相信这个表永远不会用在PK/FK关系中怎么办?

相关但不重复:拥有标识列不是一个好主意?

显然这场辩论已经持续了一段时间.应该知道.

这篇文章(代理与自然键)也是相关的.

sql database database-design

43
推荐指数
3
解决办法
3万
查看次数

调试mocha测试的最小阻力路径是什么?

编辑2016年11月:Node现在有一个内置的调试器,您可以从中开始--inspect.这个答案解释了它:https://stackoverflow.com/a/39901169/30946.

我正在用coffeescript建立一个摩卡测试.在测试的顶部,我有:

require "../assets/js/theObject.coffee"
debugger
ss = new TheObject()
Run Code Online (Sandbox Code Playgroud)

我想停止在调试器行上,因为theObject.coffee没有加载对象.我正在使用节点检查器,它可以工作,sorta.

我的过程是:

  1. 启动节点检查器
  2. 在命令行运行测试 mocha --compilers coffee:coffee-script ./test/theObjectTests.coffee --ui bdd -d --debug-brk
  3. 转到节点检查器页面,如果它已经打开则刷新它
  4. 等待文件theObject.coffee加载,然后在正确的行上放置一个断点

必须有一个更简单的方法.看起来我应该能够运行一个调试器并让它停在那个调试器行上,但我无法找到它.

我有WebStorm,它有一个调试器(本文讨论设置它来运行mocha测试,但它没有帮助我),但是当我启动它时,它失败了.在WebStorm调试窗口中运行的命令是:

"C:\Program Files\nodejs\node.exe" --debug-brk=64232 C:\Users\jcollum\AppData\Roaming\npm\_mocha

C:\Users\jcollum\AppData\Roaming\npm\_mocha:2
basedir=`dirname "$0"`
Run Code Online (Sandbox Code Playgroud)

我怀疑这可能是一个特定于Windows的问题.

环境:Windows 7,Webstorm,节点0.8.16,mocha 1.7.4,git-bash

问题是:如果你是从头开始使用Mocha,那么调试器的最简单方法是什么才能轻松地停在调试器线上?这里的关键字很简单.

编辑:自从问这个我已经停止使用Windows并在Ubuntu工作.我的mocha调试过程(我不经常使用)是一样的.

debugging unit-testing mocha.js node.js coffeescript

41
推荐指数
5
解决办法
2万
查看次数

npx 不再进行无安装运行吗?

来自nodejs.dev 站点

\n
\n

npx 允许您运行该 npm 命令,而无需先安装它。如果未找到该命令,npx 会将其安装到中央缓存中:

\n
\n

他们以此为例:

\n
npx cowsay "Hello"\n
Run Code Online (Sandbox Code Playgroud)\n

但是当我运行时:

\n
$ npx cowsay "Hello"\n\nNeed to install the following packages:\n  cowsay\nOk to proceed? (y)\n
Run Code Online (Sandbox Code Playgroud)\n

啊?我现在需要设置一些偏好吗?我习惯于npx运行而不安装它们,就像他们在 nodejs.dev 上所说的那样。我真的不想安装cowsay在我的全局变量中。

\n
Node v14.17.5\nNPM 7.21.0\nOS:ProductName: Mac OS X\nProductVersion: 10.15.7\n
Run Code Online (Sandbox Code Playgroud)\n

在这里作为问题提交:https ://github.com/nodejs/nodejs.org/issues/4104

\n

编辑:刚刚在 NPM 6 中测试了它,它按预期工作。这可能是 NPM v6 后的更改。

\n
\xe2\x9c\x97 npm --version\n6.14.16\n\n\xe2\x9c\x97 npx cowsay "Hello"\n\nnpx: installed 41 in 7.509s\n _______\n< Hello >\n...\n
Run Code Online (Sandbox Code Playgroud)\n

node.js npm npx

34
推荐指数
2
解决办法
1万
查看次数

我应该如何在一个页面上包含coffeescript文件?

编辑:一年后,如果我要再次这样做,我会用curl.js代替Rails资产管道.

相关:在Rails 3应用程序中添加页面特定javascript的最佳方法?

我正在编写一个应用程序,并使用coffeescript生成所有的js.这就是相关问题不能满足我需要的原因.

我希望能够将coffeescript文件放在我的资产目录的子文件夹中,并且只能在一个页面上提供.coffee文件.该页面位于命名路由上

match 'myNotifications' => 'user#notifications'

最明显的事情是将.coffee文件放入assets\javascripts\user\index.js.coffee.但在阅读有关资产的文档后,我不清楚.

我读了这一行(来自http://guides.rubyonrails.org/asset_pipeline.html):

您应该将任何JavaScript或CSS唯一的控件放在各自的资产文件中,因为这些文件可以仅为这些控制器加载,例如<%= javascript_include_tag params [:controller]%>或<%= stylesheet_link_tag params [ :controller]%>.

好的很酷,所以我把页面特定的js放入assets\javascripts\user.js.coffee.然后我重新加载了我的主页,按Ctrl F5.user.js文件仍在主页上加载.经测试$ -> alert 'ready from users controller'; 加载主页时看到警报.

Rails是否有办法让每页的coffeescript文件只能与该页面一起提供?我读错了吗?在assets文件夹中是否有一个地方可以放入.coffee文件,它们不会被每个页面加载?

更新:看起来我可能有一个答案:

有几种方法可以解决这个问题.我们可以使用require_directory而不是require_tree,因为这只会加载当前目录中的文件而不是子目录中的文件.如果我们想要更多地控制包含的文件,我们可以单独地要求它们而不是包括整个目录.或者,我们可以将我们想要包含在所有页面上的JavaScript文件移动到公共子目录中.然后我们可以使用require_tree ./public来包含那些文件.

我会在上午给出一个镜头.

ruby-on-rails coffeescript ruby-on-rails-3

25
推荐指数
2
解决办法
1万
查看次数

如何在SQLite的where子句中使用布尔字段?

这似乎是一个愚蠢的问题,但是.可能是我的IDE让我感到困惑.这是代码(这是从DbLinq生成的):

SELECT  pics$.Caption, pics$.Id, pics$.Path, pics$.Public, pics$.Active, portpics$.PortfolioID
FROM main.Pictures pics$
inner join main.PortfolioPictures portpics$    on  pics$.Id = portpics$.PictureId

WHERE   portpics$.PortfolioId = 1 AND pics$.Id > 0
--AND pics$.Active = 1 AND pics$.Public = 1
ORDER BY pics$.Id
Run Code Online (Sandbox Code Playgroud)

如果我运行此查询,我会返回三行,其中两个布尔字段称为Active和Public.添加注释掉的行不会返回任何行.将行更改为以下任何一项:

pics$.Active = 'TRUE'
pics$.Active = 't' 
pics$.Active =  boolean(1)
Run Code Online (Sandbox Code Playgroud)

它不起作用.错误或没有结果.我已经google了这一点,发现实际的SQL查询缺乏.我们在这里.

那么:我如何在SQLite的where子句中使用布尔字段?

IDE是SQLite管理员.

更新:嗯,我找到了答案.SQLite管理员可以让你显然构成自己的类型; 生成的create SQL如下所示:

CREATE TABLE [Pictures] ([Id] INTEGER  PRIMARY KEY AUTOINCREMENT NOT NULL,
[Path] VARCHAR(50)  UNIQUE NOT NULL,[Caption] varchAR(50)  NULL,
[Public] BOOLEAN DEFAULT '0' NOT NULL,[Active] BOOLEAN DEFAULT …
Run Code Online (Sandbox Code Playgroud)

sqlite dblinq

24
推荐指数
3
解决办法
4万
查看次数

我可以使用socket.io-client连接到标准的websocket吗?

尝试使用socket.io-client连接到用Go编写的websocket服务器.我已经使用节点WebSocket库(npm)成功连接.所以工作的Websocket代码如下所示:

  goSocketPort = 6060
  url = "ws://localhost:#{goSocketPort}/streamresults/"
  ws = new WebSocket(url)

  ws.on('open', ->
    log "socket opened"
  )

  ws.on('message', (message) ->
      console.log('received: %s', message)
    #log "Socket message: #{JSON.stringify message}"
  )
Run Code Online (Sandbox Code Playgroud)

非常简单且有效 - 另一端的套接字以固定频率发送消息.但我最初尝试socket.io-client(npm)并且无法让它去.它肯定会将websocket列为首选的传输方式,但该死的如果我可以连接它:

socket = ioClient.connect("#{url}", {port: goSocketPort, transports: ['xhr-polling', 'websocket']}) 

socket.on("connect", (r) ->
  log "connected to #{url}"
)
Run Code Online (Sandbox Code Playgroud)

连接永远不会发生,因此没有任何on事件被触发,代码立即退出.我已经尝试过:将端口从网址中删除并将其添加到选项中,不使用传输选项(根据文档意味着"全部")并使用http网址.是socket-io.client不是能够连接到一个"标准"的WebSocket的?

websocket node.js coffeescript socket.io

20
推荐指数
1
解决办法
1万
查看次数

什么是收集业务规则文档的好方法?

我遇到了一个常见的情况,我敢肯定,我的业务规则文档分布在电子邮件,文档(现已过期)和即时消息中.这很臭.

我可以想到两个选择:Sharepoint(讨厌它,搜索功能很糟糕)或维基.

我希望在理想的解决方案中看到的一些事情:

  • 轻松更新:不要让我拉起Word来更新文档
  • 差异视图:有时您只需要查看新内容
  • 可订阅:逐页通知新更改
  • 基于角色:编辑和查看页面可以与角色相关联
  • 附件:轻松包含模型,文件等.
  • 搜索:这是一个谷歌后世界,我希望能够立即搜索和查找 - 除非我们使用的那个配置不正确,否则此类别中的Sharepoint会丢失
  • 附件限制:理想情况下,解决方案不允许上传我们随后称之为文档的一堆Word文档.我希望文档具有一致(简单)的格式.以PDF,txt等方式强制执行附件.

跟进我的wiki评论,看起来至少有3个wiki可以做我想要的(Incentive,SharePoint-Wiki-Plus,ThoughtFarmer).ThoughtFarmer,爱这个名字.

documentation wiki business-logic

18
推荐指数
1
解决办法
2826
查看次数

如何构建一个react-native应用程序,使其作为ipad上的ipad应用程序运行?

我的应用程序在ipad上看起来很糟糕,因为它是作为iphone模拟的应用程序运行而不是ipad应用程序.

我需要在代码中做些什么来处理它可能在ipad上运行的可能性?

如何使用react-native构建应用程序,以便它将安装在ipad上并作为ipad应用程序运行?

这可能没有xcode吗?

我正在运行react-native run-iosiPad Air模拟器.也许我需要建立一个方案并用它调用--scheme

iphone ipad ios react-native

18
推荐指数
4
解决办法
1万
查看次数

在敏捷工作的团队通常会拒绝雇佣那些没有在敏捷工作过的人吗?

作为一名从未在敏捷公司工作的开发人员(但曾在TDD商店工作过),我看到运营敏捷商店的雇主拒绝聘请没有在敏捷工作的人.在过去的几年里,我已经碰到过几次了.这真的是哲学变革的根本吗?在TDD工作之后,我几乎可以争论不雇用从未做过TDD的人(在繁重的TDD环境中工作时).也许我不了解敏捷及其与TDD之间的区别.

我实际上喜欢在敏捷工作,但这似乎是你必须有经验才能获得经验的时期之一.当然,你可以自己做,但如果你问我这不符合条件.作为雇主,我不会真的称之为适用.

agile

17
推荐指数
3
解决办法
1318
查看次数

TFS作为源控制:你喜欢什么?你讨厌什么?

我现在已经使用TFS大约18个月了,我真的不为此感到兴奋.这似乎是目前市场上最糟糕的SCM版本.

我认为这个线程将帮助人们决定TFS是否适合他们与其他源控制系统.虽然TFS做的远不止这些,但我认为源代码控制对软件开发至关重要,因此您选择的任何系统(或其组合)都需要首先考虑源代码控制.

TFS与其他源代码控制有什么好处 - 没有其他人做得好吗?

TFS对其他人似乎做得很好的事情有什么不妥

tfs tfs2008

17
推荐指数
4
解决办法
3650
查看次数