标签: file-organization

将Python Flask应用程序拆分为多个文件

我无法理解如何将烧瓶应用分成多个文件.

我正在创建一个Web服务,我想将api分成不同的文件(AccountAPI.py,UploadAPI.py,...),所以我没有一个巨大的python文件.

我已经读过你可以用蓝图做到这一点,但我不完全确定路线对我来说是正确的.

最终我想运行一个Main python文件并包含其他文件,这样当它运行时,它们被认为是一个大文件.

例如,如果我有Main.py和AccountAPI.py我希望能够这样做:

Main.py:

from flask import Flask
import AccountAPI

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

AccountAPI.py:

@app.route("/account")
def accountList():
    return "list of accounts"
Run Code Online (Sandbox Code Playgroud)

我知道这个例子显然不会起作用,但有可能做那样的事吗?

谢谢

python web-services file-organization flask

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

我应该在标题中使用#include吗?

是否需要#include某个文件,如果在标题(*.h)内,使用此文件中定义的类型?

例如,如果我使用GLib并希望gchar在我的标题中定义的结构中使用基本类型,是否有必要执行a #include <glib.h>,知道我已经在我的*.c文件中有它?

如果是,我还必须把它放在#ifndef#define之后#define

c file-organization c-preprocessor

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

头文件中的多个类与每个类的单个头文件相对应

无论出于何种原因,我们公司都有一个编码指南,规定:

Each class shall have it's own header and implementation file.

因此,如果我们编写一个名为的类,MyString我们需要一个关联的MyStringh.hMyString.cxx.

还有其他人这样做吗?有没有人看到任何编译性能影响?10000个文件中的5000个类的编译速度是否与2500个文件中的5000个类一样快?如果没有,差异是否明显?

[我们编写C++并使用GCC 3.4.4作为我们的日常编译器]

c++ performance file-organization

68
推荐指数
6
解决办法
7万
查看次数

将Xcode组创建为文件系统文件夹的工作流程

我喜欢在Xcode 4项目导航器窗格中将我的类组织成组.我也通过终端使用GIT版本,这对我来说比Xcode 4集成更好.对我来说,当我在Xcode中创建的组对应于我的文件系统上的真实文件夹时,它是最有意义的.

但是,Xcode似乎并不关心文件系统中的文件(例如Objective-C .h/.m文件)的位置,每次添加一个group(Option+Command+N)时,它都是纯粹的装饰,因为你放在那里的任何文件都会分享与其余硬盘相同的位置.

奇怪的是,如果您首先在硬盘驱动器上创建一个文件夹,然后将其拖到Xcode,那么您已经在文件系统上创建了一个具有自己位置的组.您在其中创建的每个文件都将在磁盘上的文件夹中创建.我喜欢这个,但如果Xcode会为我做这件事,我会更喜欢它Option+Command+N.为您要创建的每个组切换到Finder的工作流程,然后将其拖回到项目导航器中的正确位置,这简直太愚蠢了.

感觉就像设置会修复,但我找不到它!有没有更好的办法?

更新:将文件夹拖动到Xcode时,您将看到一个对话窗口,您可以在其中选择"文件夹参考".这看起来很有希望,但是我的Xcode 4不接受那里的文件作为类,并一直告诉我它找不到任何文件.也许答案就在这里,但我仍然找不到它.

另一个更新:我已将主编辑器环境从Xcode更改为AppCode.后者支持实际创建文件夹以支持项目组,同时保持与Xcode的100%兼容性.那些AppCode的人肯定知道他们在做什么.

xcode file-organization objective-c xcode4

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

如何在文件系统中存储图像

目前,我在InnoDB表中将图像(最大6MB)存储为BLOB.随着数据量的增长,夜间备份越来越慢,阻碍了正常的性能.

因此,二进制数据需要转到文件系统.(指向文件的指针将保存在数据库中.)

数据具有树关系:

- main site
  - user_0
    - album_0
    - album_1
    - album_n
  - user_1
  - user_n
etc...
Run Code Online (Sandbox Code Playgroud)

现在我希望数据通过目录结构均匀分布.我该怎么做到这一点?

我想我可以尝试MD5('userId, albumId, imageId');切片结果字符串以获取我的目录路径:

  /var/imageStorage/f/347e/013b/c042/51cf/985f7ad0daa987d.jpeg

这将允许我将第一个字符映射到服务器,并将目录结构均匀分布在多个服务器上.

然而,这不会保持每个用户组织的图像,可能将图像分散在多个服务器上的1个专辑中.

我的问题是:
在保持用户/专辑数据在一起的同时,以平衡的方式将图像数据存储在文件系统中的最佳方法是什么?

我在想正确的方向吗?或者这是完全做事的错误方式?

更新:
我将为md5(user_id)最高级别的拆分进行字符串切片.然后将所有用户数据放在同一个存储桶中.这将确保数据的均匀分布,同时保持用户数据紧密存储在一起.

  /var
   - imageStorage
     - f/347e/013b
       - f347e013bc04251cf985f7ad0daa987d
         - 0
           - album1_10
             - picture_1.jpeg
         - 1
           - album1_1
             - picture_2.jpeg
             - picture_3.jpeg
           - album1_11
             - picture_n.jpeg
         - n
           - album1_n

我想我会使用从后面拆分的albumId(我喜欢这个想法!),以保持每个目录的专辑数量更小(尽管大多数用户不需要).

谢谢!

database file-organization blob data-structures

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

组织C文件

我习惯在一个C文件中完成所有编码.但是,我正在开展一个足够大的项目,这样做变得不切实际.我一直在#including他们,但是我遇到了多次#include一些文件的情况,等等.我听说过.h文件,但我不确定他们的功能是什么(或者为什么有2个文件比1)好.

我应该使用什么策略来组织我的代码?是否可以将"公共"功能与特定文件的"私有"功能分开?

这个问题促成了我的询问.tea.h文件没有引用tea.c文件.编译器是否"知道"每个.h文件都有一个相应的.c文件?

c file-organization header

28
推荐指数
4
解决办法
9349
查看次数

Eclipse将包组织到文件夹层次结构中

我在Eclipse项目中有一堆软件包,它们的名称如下:edu.xxx.proj.app edu.xxx.proj.demo edu.xxx.proj.utils Eclipse中有没有办法自动将它们折叠成文件夹结构?我希望它们在工作台上如下:

edu__
     |_xxx__
            |_proj__
                    |_app
                    |_demo
                    |_utils
Run Code Online (Sandbox Code Playgroud)

java eclipse file-organization

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

Webapp文件组织约定(开发结构)

对于我正在开发的webapps,我通常使用以下文件组织,因为我认为它尊重约定:

src
|-- main
    |-- resources
    |   |-- *.properties
    |   |-- *.xml
    |   |-- spring
    |       |-- applicationContext.xml (main application context config file)
    |-- webapp
        |-- WEB-INF
            |-- spring
            |   |-- spring-mvc.xml (web application context config file, delegated to manage only the web part)
            |   |-- spring-security-http.xml (web security config)
            |-- static
            |   |-- *.css
            |   |-- *.js
            |-- views
            |   |-- *.jsp
            |-- web.xml (deployment configuration)
Run Code Online (Sandbox Code Playgroud)

我想尝试的是根据以下结构组织我的文件:

src
|-- main
    |-- resources
    |   |-- *.properties
    |   |-- *.xml
    | …
Run Code Online (Sandbox Code Playgroud)

java spring file-organization web-applications java-ee

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

维护cronjobs和shell脚本的最佳实践?

我继承了一个庞大的crontab,我需要维护和更新.我没有太多的经验或bash脚本(我认为我对基础知识有一个很好的掌握),我想做得很好.简短请求:任何"重构"凌乱的crontab和一组bash脚本的指南

长期请求:我遇到了很多问题,但很多人使用cron文件等我觉得我必须缺少一些大型信息库,最佳实践和工具 - 或者这只是一个风格上的差异那种编程?(我的偏见:为什么我可以使用工具更快,更一致,更好地手动执行某些操作?).

迄今为止的问题示例:

  1. 由于外部事件,crontab没有运行几天.与其他人一起,我们手动浏览列表,试图找出未运行的内容,我们需要重新运行的内容,以及我们需要编辑和运行早期日期等的脚本.我找不到:

    • 网上有很多(略显无意义的)"cron generator".相反的地方在哪里?我可以在一个长的crontab,两个日期中输入的东西,并让它输出哪些进程应该运行,或者总共运行多少次?这似乎在我微薄的脚本功能中,所以它不应该存在吗?;)
    • 或者,如果我必须再次执行此操作,是否有某种方法可以调用bashscript以便将date()的任何实例预先设置为较早的时间,而不是更改脚本中的每个日期调用?(例如,所有错过的报告和结算发票)
  2. 事实证明,一份特定的报告已经运行了两年.它只是再次被要求,而且,它在crontab中!bash脚本刚刚破坏了对相关文件的路径引用.我找不到:bash文件的某种路径检查器?像网站链接检查器.是的,我最终将手动完成这些操作,但它至少会显示一些问题区域.

  3. 听起来有些时候,依赖进程之间的间隔太长或太短,因此在第一次运行之后发生了更新,或者在第二次调用之前第一次没有完成运行.我已经看到了一些可能的选项(例如anacron按顺序运行),但你会推荐什么?

  4. 还有大量基本无意义的电子邮件从crontab生成(脚本抛出错误但运行'正确',大多数情况下无声地失败,或只是打印非必要脚本的永久性).我会手动浏览脚本并尝试让它们提供更多有用的数据,或者"安静地成功",但是你知道 - 任何指导方针?

如果我对这个问题的理解或布局感到困惑,那么我道歉,但是嘿 - 你看到了我的问题!我需要去从新手,知道怎样做才能得到这个正确的,并没有进一步搞砸了一个敏感的系统.谢谢!

bash cron file-organization crontab

13
推荐指数
2
解决办法
6514
查看次数

我应该把很多功能放到一个文件中吗?或者,或多或少,每个文件一个函数?

我喜欢组织我的代码,所以理想情况下我想要每个文件一个类,或者当我有非成员函数时,每个文件需要一个函数.

原因是:

  1. 当我阅读代码时,我将始终知道在哪个文件中我应该找到某个函数或类.

  2. 如果它是每个头文件的一个类或一个非成员函数,那么当我include成为头文件时,我不会包含整个混乱 .

  3. 如果我在函数中做了一些小改动,那么只需要重新编译该函数.

但是,将所有内容拆分为许多标头和许多实现文件都会使编译速度变慢.在我的项目中,大多数函数访问一定数量的模板化其他库函数.因此代码将反复编译,每个实现文件一次.编译我的整个项目目前在一台机器上需要45分钟左右.大约有50个目标文件,每个目标文件使用相同的昂贵编译头.

也许,每个文件有一个类(或非成员函数)是可接受的,但是将许多或所有这些函数的实现放在一个实现文件中,如下例所示?

// foo.h
void foo(int n);

// bar.h
void bar(double d);

// foobar.cpp
#include <vector>
void foo(int n) { std::vector<int> v; ... }
void bar(double d) { std::vector<int> w; ... }
Run Code Online (Sandbox Code Playgroud)

同样,优点是我可以只包含foo函数或只包含bar函数,整个项目的编译速度会更快,因为foobar.cpp一个文件,所以std::vector<int>(这只是其他一些昂贵的例子)编译模板化构造)必须只编译一次,而不是两次编译a foo.cppbar.cpp单独编译.当然,我上面的原因(3)对于这种情况是无效的:刚刚改变foo(){...}之后我必须重新编译整个可能很大的文件foobar.cpp.

我很好奇你的意见是什么!

c++ build-process file-organization compilation code-organization

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