小编vha*_*lac的帖子

如何解决配置猜测构建类型失败?

当我配置(在cygwin环境下)时,发生错误,消息如下:

$ ./configure
.................
checking build system type... /bin/sh: ./config.guess: No such file or directory
configure: error: cannot guess build type; you must specify one
Run Code Online (Sandbox Code Playgroud)

怎么解决?谢谢!!

cygwin configure

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

Micro ORM - 维护您的SQL查询字符串

我不会详细说明为什么我在这个阶段探索使用Micro ORMs - 除了说当我使用完整的ORM时我感到无能为力.背景中发生的事情太多,是自动发生的,而且并非所有事情都是最好的选择.我已经准备好回到原始数据库访问,但我发现了块中的三个新人:Dapper,PetaPoco和Massive.因此,我决定将低级方法与宠物项目结合起来.这是不相关的,但到目前为止,我正在使用PetaPoco.

无论如何,我无法决定如何维护我将从更高级别使用的SQL字符串.我能想到三个主要的解决方案:

  1. 在我需要的地方撒上SQL查询.这是基础设施最重的方法.但是,它在可维护性和可测试性方面都受到损害.

  2. 将查询使用限制为某些服务类.这有助于维护,我需要实现的基础设施仍然很少.也可以构建这些服务类,以便为测试目的而易于模拟.

  3. 准备一些课程,使系统有一定的灵活性.我已经开始走这条路.我实现了一个Repository接口和一个依赖于数据库的Repository类.我还构建了一些微小的接口来捕获可以传递给我的Repository的GetMany()方法的SQL查询.所有查询现在都作为单独的类实现,我可能需要更多的接口来增加一些数据库独立性 - 并且可能在将查询装饰到分页和排序查询时具有一定的灵活性(同样,这也会使他们在处理不同的数据库时更灵活一些).

我现在主要担心的是,我已经进入了写一个完整的ORM所需的所有功能的滑坡,但很糟糕.例如,我现在感觉很合理,我编写或找到一个库来将linq调用转换为SQL语句,以便我可以轻松地按下我的查询或编写可以修饰我传递给它的任何查询的扩展器,等等.但这是一个大的任务,已经由大家伙完成,所以我抵制去那里的冲动.我还希望通过显式编写来保持对发送到数据库的查询的控制.

那么建议是什么?我应该选择#2选项,还是试着在选项#3上绊倒?我确信我不能在没有脸红的情况下向第一个选项中显示任何代码.你可以推荐其他方法吗?


编辑:在我提出问题之后,我意识到还有另一种选择,与这三个选项有些正交:存储过程.将所有查询作为存储过程放入数据库中似乎有一些优点.它们保存在一个中心位置,而不是通过代码传播(虽然维护是一个问题 - 参数可能不同步).自动解决对数据库方言的依赖:如果移动数据库,则移植所有存储过程,然后就完成了.而且还有安全方面的好处.

使用存储过程选项,替代方案1和2似乎更合适一些.似乎没有足够的实体来保证选项3 - 但仍然可以将过程调用命令与数据库访问代码分开.

我已经实现了没有存储过程的选项3,以及带有存储过程的选项2,看起来后者更适合我(如果有人对问题的结果感兴趣).

sql orm

6
推荐指数
1
解决办法
1724
查看次数

迷你缓冲输入:使用自定义词典完成单词

我试图接受emacs中命令行实用程序的用户输入.我有一些可以在这个命令行中使用的单词(类似于make调用的可能目标列表),我希望能够自动完成我所知道的单词,允许用户输入在我的字典中有多个条目,并且还允许用户编写不在我的字典中的内容.一些允许使用自定义词典在迷你缓冲区中完成单词的库就是这样的.

我不需要一个完整的解决方案,但是一些关于从哪里开始寻找的指示将非常感激.另外,我宁愿避免使用侵入库,如icicles或者ido如果可能的话-我不想要这个包的用户在他们如何配置其设置的其他限制.

到目前为止,我最好的解决方案是completing-read为每个目标使用多次,直到用户输入空字符串.

event_jr的答案在下面做了诀窍.我用过的最终代码如下:

(require 'crm)
(let ((crm-separator " ")
      (crm-local-completion-map (copy-keymap crm-local-completion-map)))
  (define-key crm-local-completion-map " " 'self-insert-command)
  (completing-read-multiple "prompt: " '("foo" "foobar" "baz"))))
Run Code Online (Sandbox Code Playgroud)

emacs elisp autocomplete

5
推荐指数
1
解决办法
170
查看次数

标签 统计

autocomplete ×1

configure ×1

cygwin ×1

elisp ×1

emacs ×1

orm ×1

sql ×1