pkg_baserunner_utils version: 0.0.11

Published 2024-02-01

reinbeumer

sdk | dart
repository | svn
platform | generic
status | experimental
  • Readme
  • Changelog
  • Versions

pkg_baserunner_utils

This package contains all the useful and necessary utility's for creating client specific code with an allocations list, artwork and specifications with library code in lib/, and example unit test in test/.

graph

wat betreft instellingen/code templates/copyright template/snippets:

svn up

in android studio > File > Manage IDE Settings > Import Settings >>>>>> work_dart/settings.zip bij "new dart file" heb je dan een standaard copyright blokkie, bij bestaande files kun je intikken 'hhcopyright', dan krijg je de snippet in je tekst

  • je staat al als package 'maintainer' / 'creator' in de pubspec.yaml, dus overal in de header reinbeumer zetten is niet nodig,

  • /data_models, kan gewoon models worden, 1 model per file

  • alleen bij stateful widgets zijn er 2 classes in een file, de widget, de state.

  • extensions in de extensions map, niet in io, podo, evt. extensions/io en extensions/podo

  • podo is geen gebruikelijke aanduiding, meer 'model' of 'vo' (value object). ik maak vaak onderscheid: 'models' zijn actief (zijn ChangeNotifiers, icm. Provider), en 'vo's zijn 'dood', bevatten alleen data.

  • let wel op met extension classes: je kunt ze niet over-erven, dus als je bijv 'GetSpreadsheetData' zou willen aanpassen, dan kan dat niet echt

  • test resources naar de test folder, resources is geen gebruikelijke aanduiding, 'assets' meer gangbaar.

  • test output naar een outputfolder (/test/assets/output), evt. deze output folder svn-excluden, of in je test init de folder maken, en in de shutdown de folder verwijderen (doe ik zelf ook niet, moet nog eens gebeuren)

  • extensies voegen iets toe aan een class, maar zijn niet te overloaden, maakt de structuur veel te statisch en niet aanpasbaar.

  • mixins voegen iets toe aan een class, maar weten niets van die class, en de functies moeten dus opzichzelf staan.

  • mixins en extensies zijn 'special cases', gebruik in de basis classes.

  • gerefactored, nu is ie wat mij betreft beter, benieuwd wat je er van vind.

  • je kunt nu alle classes los gebruiken en eigenlijk is BaseRunnerUtils niet echt meer nodig.

  • je kunt nu ook een custom BaseRunnerUtils maken met bijv een andere SpreadsheetReader implementatie.

  • path package wordt wel gebruikt hier en daar in de andere code, maar is niet ideaal omdat ie alles met strings doet, imho File en Directory zijn beter (uit dart:io).

  • gebruik Platform.pathSeparator voor / of \ in paden.

  • functie namen hoeven niet zo lang te zijn SpreadsheetReader.read is genoeg bijv.

  • alle enums/classes/mixins/extensions : 1 per file.

  • CamelCaseClass = camel_case_class.dart

  • probeer lange functies op te breken in losse functies (_private)

  • probeer functie namen te doen volgens 'do, get, set, has, can, is'.

    • doRead
    • canRead
    • getData
    • setData
    • hasData
    • isDataReady
  • CrossFileChecker is wel handig, verdient een eigen plekje in pkg_core.

  • FileReader, not sure. Wat is er mis met:

  final List<file> files = Directory("what")
    .listSync(recursive: true, followLinks: false)
    .whereType<File>()
    .where((e)=>e.path.contains('/.')==false)
    .where((e)=>e.getExtension().compareCaseInsensitive('pdf'))
    .toList();
  • OrderModelsGenerator (formerly known as PODO), niet mijn voorkeur, liever dit:

  class MyPojo {
    final String vestiging;
    final String adres;
    final String postcode;
    
    const MyPojo({
      required this.vestiging,
      required this.adres,
      required this.postcode,    
    });
    
    factory MyPojo.fromRow(final List<String> row) {
        return MyPojo(
          vestiging: row[somekey],
          adres: row[someotherkey],
          postcode: row[dontknowwhat],
        );
    }
  }
  
  Spreadsheet s = Spreadsheet(File('test.xlsx'));
  await s.read();
  List<MyPojo> models = s.data[s.getSheets().first]
    .skip(headerCount)
    .map(MyModel.fromRow)
    .toList();
    
   List<Something> result = doProcess(models);
   
   doWriteSomething(result);
   
  • PrintCalculator, throw gewoon de ItemToBigForSheetException, niet in de functie afhandelen.

  • ResultHandler, ok.

  • SpreadsheetReader, zal zich wel bewezen hebben, beter is om functionaliteit die hier in zit en nog niet in pkg_spreadsheet over te hevelen.

  • RetValData, ReturnData, geen fan van.

  • BaseRunnerUtils is eigenlijk overtollig (wrapper), kan gewoon worden:

void main () {
  final ResultHandler resultHandler = ResultHandler(
    runContext: RunContext.debug,
    notifyOnError: true,
    quitOnError: true,
    );
  final FileReader fileReader = FileReader(resultHandler);
  final CrossFileChecker crossFileChecker = CrossFileChecker(resultHandler);;
  final PrintCalculator printCalculator = PrintCalculator(resultHandler);
  final OrderModelsGenerator orderModelsGenerator = OrderModelsGenerator(resultHandler);
  final SpreadsheetReader spreadsheetReader = SpreadsheetReader(resultHandler);
  
  ... doe je ding ...
 }
  
  • te veel een construct die misschien nodig was in javascript.

Changelog

0.0.11 - 2024-02-01

Changed

  • Version bump from 0.0.10 to 0.0.11 (Resolve package version confusions).

0.0.10 - 2023-02-09

Changed

  • Version bump from 0.0.9 to 0.0.10 (Version confusion after compiler bug chaos).

0.0.9 - 2022-12-27

Changed

  • Version bump from 0.0.8 to 0.0.9.

0.0.8 - 2022-12-22

Changed

  • Version bump from 0.0.7 to 0.0.8.

0.0.7 - 2022-12-22

Changed

  • Version bump from 0.0.6 to 0.0.7 (Recompile due to installer optimizations).

0.0.6 - 2022-10-19

Changed

  • Removed all print statements for logging.

0.0.5 - 2022-10-11

Changed

  • Version bump from 0.0.4 to 0.0.5 (Recompile due to wrong GetIt.instance syntax.).

0.0.4 - 2022-10-05

Changed

  • Version bump from 0.0.3 to 0.0.4 (fixed pdflib searchpath macos crash).

0.0.3 - 2022-10-05

Added

  • Hidden .DS_Store folder added to test assets.

Changed

  • file_reader_test hidden folders now handled.

0.0.2 - 2022-10-01

Changed

  • Version bump from 0.0.1 to 0.0.2 (pkg_pdflib bundle macos dylib).

0.0.1 - 2022-05-16

Changed

  • Initial version.

0.0.11

2024-02-01 download

0.0.10

2023-02-09 download

0.0.9

2022-12-27 download

0.0.8

2022-12-22 download

0.0.7

2022-12-22 download

0.0.6

2022-10-19 download

0.0.5

2022-10-11 download

0.0.4

2022-10-05 download

0.0.3

2022-10-05 download

0.0.2

2022-10-01 download

0.0.1

2022-05-16 download