小编Ale*_*dre的帖子

如何在不更改代码的情况下将单站点应用程序转换为可持续发展的多站点应用程序?

这是我们在办公室内部使用的应用程序,我希望将其作为托管服务提供给任何人.

如果不进行重大代码更改,我该怎么做?

我遇到的第一件事就是让应用程序根据域选择要连接的数据库.

因此,应用程序的每个实例都有自己的数据库,但所有实例都将共享相同的代码.

代码所需的唯一更改是数据库选择.

这种方法可以维持吗?我听说wordpress.com这样做,它提供了一些优势.我主要是希望这样做,以避免将我的整个数据库查询范围扩展到同一数据库中的某个站点.

谢谢!

ruby database-design web-applications ruby-on-rails

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

如何避免在实现中重复类名和模板调用?

我发现下面的代码非常难以阅读,我写了它!有没有

  1. 避免为每个实现的成员函数调用模板
  2. 避免ClassName::member_function_name为每个实现的成员函数?我在这方面找到了Java DRYer.你不要到处重复类名.

谢谢!

template <class KeyType, class ObjectType>
class Vertex
{
private:
    KeyType key;
    const ObjectType* object;
public:
    Vertex(const KeyType& key, const ObjectType& object);
    const KeyType getKey();
};

template <class KeyType, class ObjectType> 
class Graph
{
private:
    map<KeyType, Vertex<KeyType, ObjectType> > vertexes;
public:
    const Vertex<KeyType, ObjectType>& createVertex(const KeyType& key, const ObjectType& object);
};

template <class KeyType, class ObjectType>
Vertex<KeyType, ObjectType>::Vertex(const KeyType& objectKey, const ObjectType& newObject)
{
    key = objectKey;
    object = &newObject;
};

template <class KeyType, …
Run Code Online (Sandbox Code Playgroud)

c++ implementation templates

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

奇怪的行为:从Stacks拖动到状态项不起作用

我的应用程序允许拖动到主窗口和状态项.

  • 如果我将文件从Stacks拖到我的窗口,它可以很好地工作.
  • 如果我将文件从Finder拖到我的窗口,它可以很好地工作.
  • 如果我将文件从Finder拖到我的状态项,它可以很好地工作.
  • 如果我将文件从Stack拖到我的状态项,它不起作用.

窗口和状态项都使用完全相同的拖放处理代码.

有趣的是,当文件从Stacks拖到状态项上时,光标会按预期更改,因为- (NSDragOperation)draggingEntered:(id)sender {NSPasteboard*pboard; NSDragOperation sourceDragMask; 方法按预期调用.

但是,当文件被删除时,- (BOOL)performDragOperation:(id)sender {NSPasteboard*pboard; NSDragOperation sourceDragMask; 方法不被调用.

这是第一种方法的实现:

- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
    NSPasteboard *pboard;
    NSDragOperation sourceDragMask;

    sourceDragMask = [sender draggingSourceOperationMask];
    pboard = [sender draggingPasteboard];

    if ( [[pboard types] containsObject:NSColorPboardType] ) {
        if (sourceDragMask & NSDragOperationGeneric) {
            return NSDragOperationGeneric;
        }
    }
    if ( [[pboard types] containsObject:NSFilenamesPboardType] ) {
        if (sourceDragMask & NSDragOperationLink) {
            return NSDragOperationLink;
        } else if (sourceDragMask & NSDragOperationCopy) {
            return NSDragOperationCopy;
        }
    }

    return NSDragOperationNone; …
Run Code Online (Sandbox Code Playgroud)

cocoa drag-and-drop nsstatusitem

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

到达文件末尾后,fgetc是否在每次通话时都返回EOF?

给出以下C代码:

int eofCount = 0;
while (true) {
    int c = fgetc(stdin); 
    if (c == EOF) eofCount++;
}
Run Code Online (Sandbox Code Playgroud)

eofCount会不会超过1?

我找不到C文档中的任何内容,描述了在达到EOF之后fgetc会发生什么.我知道我可以自己做这本书,但如果stdlib为我做的那就太好了.

我不是在寻找代码片段,因为我已经用glibc尝试了这个,实际上eofCount在EOF之后增加了.我想stdlib源代码参考或规范,确认这是定义的行为.依赖未定义的行为可能会导致问题.

c std

4
推荐指数
2
解决办法
692
查看次数

如何查找范围数组中是否包含范围?

business_hours['monday'] = [800..1200, 1300..1700]
business_hours['tuesday'] = [900..1100, 1300..1700]
Run Code Online (Sandbox Code Playgroud)

...

然后我有一堆事件占据了这些间隔中的一些,例如

event = { start_at: somedatetime, end_at: somedatetime }
Run Code Online (Sandbox Code Playgroud)

迭代从特定日期到特定日期的事件,我创建了另一个数组

busy_hours['monday'] = [800..830, 1400..1415]
Run Code Online (Sandbox Code Playgroud)

...

现在我的挑战是

  • 创建包含business_hours减去busy_hours的available_hours数组

available_hours = business_hours - busy_hours

  • 给定持续时间30分钟,找出available_hours中可用的时隙.在上面的例子中,这种方法将返回

available_slots['monday'] = [830..900, 845..915, 900..930, and so on]

并非它为指定持续时间的插槽以15分钟为增量检查available_hours.

谢谢您的帮助!

ruby time calendar ruby-on-rails range

3
推荐指数
1
解决办法
1486
查看次数

如何(更好)检查多维数组中的元素存在?

我该如何避免这样做?

if boolean_array[day] && boolean_array[day][slot] && boolean_array[day][slot].zero?
  # boolean_array[day][slot] element exists
end
Run Code Online (Sandbox Code Playgroud)

ruby

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

两个并发请求,相同的JPA实体 - 问题?

假设我的Web服务器同时收到两个请求.

它将在一个单独的线程中处理每个请求.

它将为每个线程创建一个JPA实体管理器.

现在让我们说每个线程请求相同的数据库行.说我有一张名为Cars的桌子.我有一辆id为5的汽车.我在两个螺纹中找到一辆id = 5的汽车.

所以我现在有两个独立的对象代表同一个实体.

现在让我说我在线程1中更新汽车的gasLevel.如果我在线程2中得到gasLevel,我是否会获得由线程1设置的新gasLevel?

multithreading hibernate jpa thread-safety

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

如何干掉这段Ruby代码?

这让我很烦.它看起来不太干燥.什么是更好的实施?顺便说一句,为什么这个ActiveRecord查找器在找不到记录时不会抛出异常,但是.find呢?

  def current_account
    return @account if @account
    unless current_subdomain.blank?
      @account = Account.find_by_host(current_subdomain)
    else
      @account = nil
    end
    @account
  end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails dry

0
推荐指数
1
解决办法
269
查看次数

在为堆栈中的变量声明指针时有什么意义吗?

 void my_cool_function() 
 {
   obj_scene_data scene;
   obj_scene_data *scene_ptr = &scene;
   parse_obj_scene(scene_ptr, "test.txt");
 }
Run Code Online (Sandbox Code Playgroud)

如果我能做的话,为什么我会像上面那样创建一个指向局部变量的指针

 void my_cool_function() 
 {
   obj_scene_data scene;
   parse_obj_scene(&scene, "test.txt");
 }
Run Code Online (Sandbox Code Playgroud)

以防它是相关的:int parse_obj_scene(obj_scene_data*data_out,char*filename);

c pointers

0
推荐指数
1
解决办法
131
查看次数