www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Dividing D Module between multiple files

reply "Muahmmad Adel" <devadel gmail.com> writes:
I have searched online and I found no way for dividing D Module 
between multiple files.

While other languages move to making classes distributed on 
multiple files (like C#'s partial classes), D is moving in the 
opposite direction, and makes a bigger code unit in one file.

Biding every module to single file means large files, with high 
probability of merge conflicts (as more developers are working on 
the same file) makes separating developer's code from IDE 
generated code more difficult.

I need to understand the rationale behind binding the module to 
the file. Although Alexandrescu explained rationale behind 
different language design decisions in his book, he didn't 
explain this one.

Thanks
Feb 17 2015
next sibling parent reply Daniel =?UTF-8?B?S296w6Fr?= via Digitalmars-d-learn writes:
On Wed, 18 Feb 2015 07:23:24 +0000
Muahmmad Adel via Digitalmars-d-learn
<digitalmars-d-learn puremagic.com> wrote:

 I have searched online and I found no way for dividing D Module 
 between multiple files.
 
 While other languages move to making classes distributed on 
 multiple files (like C#'s partial classes), D is moving in the 
 opposite direction, and makes a bigger code unit in one file.
 
 Biding every module to single file means large files, with high 
 probability of merge conflicts (as more developers are working on 
 the same file) makes separating developer's code from IDE 
 generated code more difficult.
 
 I need to understand the rationale behind binding the module to 
 the file. Although Alexandrescu explained rationale behind 
 different language design decisions in his book, he didn't 
 explain this one.
 
 Thanks
 
You are not force to do so I do not see any trouble here. For eg. I have lots of file where I have only one class (similar to java concept).
Feb 17 2015
parent "rumbu" <rumbu rumbu.ro> writes:
On Wednesday, 18 February 2015 at 07:34:13 UTC, Daniel Kozák 
wrote:
 On Wed, 18 Feb 2015 07:23:24 +0000
 Muahmmad Adel via Digitalmars-d-learn
 <digitalmars-d-learn puremagic.com> wrote:

 I have searched online and I found no way for dividing D 
 Module between multiple files.
 You are not force to do so I do not see any trouble here.

 For eg. I have lots of file where I have only one class 
 (similar to
 java concept).
The problem with this approach is that you will end with ugly class names like mypackage.myclass.MyClass. I'm porting some C# code where I need the type name at runtime and I ended with a huge package.d file just to keep pretty names like mypackage.MyClass. Another way to trick the compiler is to mixin import all modules in the package.d file but you'll loose features like code completion in your editor.
Feb 18 2015
prev sibling parent =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 02/17/2015 11:23 PM, Muahmmad Adel wrote:

 I have searched online and I found no way for dividing D Module
 between multiple files.
As always, documentation can be better. :) There is the relatively new "package module": http://dlang.org/module.html#package-module http://ddili.org/ders/d.en/modules.html#ix_modules.package%20import
 high probability of merge conflicts (as more developers are
 working on the same file)
A merge conflict at the file level yes, but if the developers are touching different parts of that file, then most merge tools wouldn't see that as a merge conflict. Ali
Feb 18 2015